2012-02-08 29 views
0

我正在嘗試延遲淡出div。我使用JQuery,但沒有延遲的方法在Chrome 16的工作,所有在FF 10chrome setTimeout and fade

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

無論在Chrome這些工作的罰款。

這將在Chrome工作,但沒有任何淡入淡出效果:

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

誰能告訴我爲什麼?還有一種方法可以爲Chrome添加淡化效果嗎? 感謝您的閱讀。

+0

可以使用匿名函數通過以下@Zenexer的建議。另外,爲什麼你要設置一個這樣的風格,而不是僅僅使用'.css()'?只是好奇。 – Matijs 2012-02-08 10:07:00

+0

我是一個老派,在JQuery存在之前,所以我傾向於使用語言而不是框架。 – Gurnard 2012-02-08 10:09:15

+0

Chrome上的控制檯是否提供任何錯誤? – magicalex 2012-02-08 10:20:58

回答

0

如果我將它設置爲

msgCenter.style.display = "block"; 

它適用於上述所有選項!對我來說似乎很陌生。任何人都知道爲什麼它必須被阻止,而不是內聯?

1

又一解決方案:

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

如果淡入時遇到的問題,太:

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

這對我不起作用,它確實如果我將顯示設置爲阻止。 – Gurnard 2012-02-08 10:04:14

+0

#messageCenter是什麼類型的元素? – Zenexer 2012-02-08 10:06:26

+0

messageCenter是一個div – Gurnard 2012-02-08 10:07:55

1

你必須使用jQuery動畫,像下面的一個:

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

你好,感謝回覆。除非我將顯示器設置爲阻止,否則這對我也不起作用。 msgCenter.style.display =「block」; – Gurnard 2012-02-08 10:06:38

0

如何:

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

你的第二個選項應該工作。我設置了一個可在Chrome 16.0.912.77上運行的jsfiddle here

+0

剛把'display'改成'inline',它看起來還好。 [jsfiddle here](http://jsfiddle.net/magicalex/zHgKN/)。 – magicalex 2012-02-08 10:11:24

+0

你好。感謝您的努力。我分叉小提琴(運行非常緩慢,小提琴得到504s不止一次),並更新它與我有div等。http://jsfiddle.net/b6zMm/1/它不工作在鉻,因爲你的小提琴做。我認爲這可能與正在使用的致命內聯樣式有關。你會看到,如果你改變這一行div.style.display =「block」;它將在鉻合作 – Gurnard 2012-02-08 10:29:20

+0

我設置了'display:none'並添加了你的javascript,並且它可以在Chrome中工作(17)。 [Jsfiddle here](http://jsfiddle.net/AyWPE/)。也許問題在於HTML中的其他地方。 – magicalex 2012-02-08 18:07:17

0

你也可以try $("#messageCenter").hide(4000) ...這會給收縮動畫...但你的情況下使用$("#messageCenter").fadeIn(4000)$("#messageCenter").fadeOut(4000)