登录  /  注册
首页 > web前端 > js教程 > 正文

IE下 jquery的fadeIn与fadeOut方法失效的BUG

巴扎黑
发布: 2017-06-29 11:55:23
原创
1338人浏览过
<p>bug1:绝对定位嵌套绝对定位

<p>这个问题遇到过好多次,因为没有做笔记,所以每次遇到这个问题都要研究半天。好记性不如烂笔头,这话一点没错。


<p id="show_list">
      <p class=""  val="0">
           <p class=" posab" style="top:50px; left:260px;"> <img  class="png_bg" src="/uploads/productimage/164613_634717302959421250.png" / alt="IE下 jquery的fadeIn与fadeOut方法失效的BUG" ></p>  
           <p  class="posab alce"  style="top:200px; width:260px; left:80px;">
                <p class=" f18 l22 alce" style="color:#e99417; margin-top:20px;">测试测试测试</p>
                <p class=" f14 l22 alce" style="color:#e99417;">测试测试测试</p>
                <p class="lk444 f14  l22 alce" style="margin-top:5px;">测试测试测试</p>
           </p>
       </p>
登录后复制
    <p class=""  val="0">
           <p class=" posab" style="top:50px; left:260px;"> <img  class="png_bg" src="/uploads/productimage/164613_634717302959421250.png" / alt="IE下 jquery的fadeIn与fadeOut方法失效的BUG" ></p>  
           <p  class="posab alce"  style="top:200px; width:260px; left:80px;">
                <p class=" f18 l22 alce" style="color:#e99417; margin-top:20px;">测试测试测试</p>
                <p class=" f14 l22 alce" style="color:#e99417;">测试测试测试</p>
                <p class="lk444 f14  l22 alce" style="margin-top:5px;">测试测试测试</p>
           </p>
       </p>
登录后复制
<p>
登录后复制
<p>posab 是绝对定位的class

<p>只要把绝对定位换成浮动,就可以实现淡隐淡出的效果了。


IE下 jquery的fadeIn与fadeOut方法失效的BUG

测试测试测试

测试测试测试

测试测试测试

    

IE下 jquery的fadeIn与fadeOut方法失效的BUG

测试测试测试

测试测试测试

测试测试测试

<p>
登录后复制
<p> 具体的位置需要做一些调整

<p>BUG2:父级绝对定位嵌套大于父级尺寸的图片

<p>还有一种情况,是IE8独有的BUG,格式如下


 <p class=" posab" style=" top:80px; left:260px;width:550px;height:55px">
  <img  class="png_bg" src="image.jpg" / alt="IE下 jquery的fadeIn与fadeOut方法失效的BUG" >
</p>
登录后复制
<p> 如果图片的大小超过了p的大小,在IE8下面淡隐淡出效果将会失效

<p>BUG3:

<p>网上还差了一种bug,具体没有遇到过,现也贴上:

IE6 IE7 IE8 在 position : relative 时fadeIn() fadeOut() bug 解决方案

<p>先看一个例子

<p> <p>I am going to fade in ;

<p>I am going to fade in ;

$('.fadein').fadeIn();
登录后复制
<p>

<p>以上代码基本上在所有主流浏览器都可以达到预期效果

<p>但是现实是残酷的, 大家的html结构当然不会这么简单。

<p>我们再加一点东东

<style>
.relative{position: relative;}
</style>
登录后复制

<p>I am going to fade in ;

<p>I am going to fade in ;

$('.fadein').fadeIn();
登录后复制
<p>这个时候在IE 6 78 就会吭爹的事情出现, 动画不出现有木有! 直接show出来有木有!

<p>这是臭名昭著的 IE 大bug: 如果fadeIn的元素的子元素有position属性时 以relative值为最严重 有position属性的元素不会出现fadeIn的效果!

可能的曲线解决方法:

<p>1, 不用position: relative; 这个嘛 有时候可以做到

<p>2,如果1实在做不到, 比如笔者遇到的情况,那就用each()。 你可以一个一个做这个效果, 这个当然是可以做到的, 不过效率太差, 搞不好会挂掉用户的电脑,比如笔者遇到的情况,有几十个上百个子元素 这个方法是万万使不得滴。。

针对性解决办法

<p>我们要在使用position:relative 而且不使用each()的情况下达到这个效果,可以吗?

<p>可以!

<p>既然这是一个bug 那一定就有hack的方法

$(&#39;.fadein&#39;).css(&#39;position&#39;, &#39;relative&#39;).fadeIn();
登录后复制
<p>在fadeIn()之前动态的将其position属性改为relative; 会解决IE7下的这个bug

<style>
.relative{position: relative; filter: inherit}
</style>
登录后复制
<p>在你子元素有position属性的元素加 filter: inherit; 当前元素的第一层子元素也要加。
这两条一结合 IE678 的问题就都解决了

<p> 

以上就是IE下 jquery的fadeIn与fadeOut方法失效的BUG的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号