【问题标题】:Why this function not work on ie 7 ,8 (delay and fadein)?为什么此功能不适用于 ie 7 ,8(延迟和淡入淡出)?
【发布时间】:2014-12-01 22:53:59
【问题描述】:

为什么这个功能在 ie 7 ,8 (delay and fadein) 上不起作用?

在其他浏览器上有延迟和淡入效果。

但在即所有元素同时显示(不是延迟和淡入淡出)。

http://jsfiddle.net/7u8qmdoo/2/

<script>
$(document).ready(function()
{    
    var i = 0;
    (function fadeInNext()
    {        
        $("#num" + i).fadeTo(1000,1);
        console.log("Fading in " + i);
        i++;
        if (i < 8)
        {
            setTimeout(fadeInNext, 2000);
        }
    })();
});
</script>

【问题讨论】:

  • 在 IE10 上运行良好。什么版本导致您出现问题?
  • 取出console.log()
  • IE7 和 8 不支持opacity,所以opacity: 0 被忽略。 css-tricks.com/snippets/css/cross-browser-opacity
  • @James Montagne --- 即 7 8 也不会延迟
  • @DanFromGermany 你不知道我有多高兴我的雇主很快就强制升级到 IE11。

标签: javascript jquery html css internet-explorer


【解决方案1】:

您可以在基本的for 循环中使用delay 更简单地执行此操作,但您还需要使用fadeIn 而不是fadeTo,因为IE7 不处理fadeTo 的不透明动画:

JSFiddle:http://jsfiddle.net/TrueBlueAussie/7u8qmdoo/6/

$(document).ready(function()
{    
    for (var i = 0; i < 8; i++){
        $("#num" + i).delay(i * 2000).fadeIn(1000);
    }
});

这与:

$("#num0").delay(0).fadeIn(1000,1);
$("#num1").delay(2000).fadeIn(1000,1);
$("#num2").delay(4000).fadeIn(1000,1);

【讨论】:

  • 在 IE7 中让你伤心的是它的衰落...我会努力为你找到更好的选择。
  • 该更新在 IE9/IE7 模式下适用于我,但在 IE9/IE8 模式下仅显示没有淡入淡出。一定要爱上 IE。
  • @James Montagne:得某事 IE。现在似乎在除 IE8 之外的所有设备中都能正确淡入淡出:(
  • 看起来问题在于 IE8 处理褪色的内联元素。 see here。将它们设置为inline-block 可以修复它,但当然它们不会被隐藏。我尝试将它们设置为inline-block,然后将它们隐藏在 js 中。这行得通,但很丑陋。
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 2012-01-02
  • 2022-07-29
  • 2011-03-18
相关资源
最近更新 更多