chrome setTimeout和fade

时间:2012-02-08 09:54:56

标签: javascript jquery google-chrome

我正试图延迟淡出div。我使用的是JQuery,但Chrome 16中的延迟方法都不起作用,在FF 10中一切都很好。

msgCenter.style.display = "inline";
setTimeout('$("#messageCenter").hide("fade", { }, 1000);',4000);
$('#messageCenter').delay(4000).fadeOut();

这些都不适用于Chrome。

这适用于Chrome,但没有淡入淡出效果:

setTimeout('$("#messageCenter").hide();',4000);

谁能告诉我为什么?还有一种方法可以为Chrome添加淡化效果吗? 谢谢你的阅读。

6 个答案:

答案 0 :(得分:1)

又一个解决方案:

setTimeout(function() {
    $("#messageCenter").css('display', 'block').fadeOut();
}, 4000);

如果fadeIn也遇到问题:

$("#messageCenter").css({display: 'block', opacity: 0}).fadeIn();

答案 1 :(得分:1)

您必须使用JQuery动画,例如以下之一:

setTimeout('$("#messageCenter").fadeOut();', 4000);
setTimeout('$("#messageCenter").animate({ opacity: 0.0 }, 1000, function() { /* Animation complete */});', 4000);

答案 2 :(得分:1)

你的第二个选择应该有效。我设置了jsfiddle here,适用于Chrome 16.0.912.77。

答案 3 :(得分:0)

如果我将其设置为

msgCenter.style.display = "block";

它适用于上面提到的所有选项!对我来说似乎很奇怪。任何人都知道它为什么必须阻止而不是内联?

答案 4 :(得分:0)

这个怎么样:

setTimeout(function() {
    $('#messageCenter').css("display","block").fadeOut(4000,function() {
        $(this).css("display","inline");    
    });
});

答案 5 :(得分:0)

您还可以try $("#messageCenter").hide(4000) ...这会产生缩小动画......但是对于您的案例,请使用$("#messageCenter").fadeIn(4000)$("#messageCenter").fadeOut(4000)