2011-08-22 70 views
0

基本上我試圖淡入或淡出<div id="speech-bubble-sun"><div id="speech-bubble-dark">,這取決於動畫淡化分區<div id="headlights">的可見性。所以here is what I have so farif-statment暗淡淡入淡出

我在整個函數中以不同的時間間隔調用if語句,它現在可以工作!

但是,一旦該函數再次被調用(在循環中),if語句就停止工作。

+0

可能的重複:http://stackoverflow.com/questions/7121144/jquery-javascript-if-statement-with-css-values – tw16

回答

1

「if」測試工作正常。

「fadein」和「fadeout」是從你自己的代碼異步完成的。即當「headlights」div淡入/淡出時,您自己的代碼將繼續執行。

當「淡入淡出」完成時,「headlights」div被設置爲「隱藏」(不可見),但是幾分之一毫秒後,它會變淡,隨着淡入淡出。

因此,超過99%的時間可以看到,而只有不到1%的時間(從「淡出」完成到「淡入淡出」開始之前的精確時刻),它將被隱藏,所以你幾乎總是會看到「講話泡泡太陽」,而不是「講話泡泡黑暗」。你不會在這兩個div之間打乒乓球。

+0

剛剛在fadeIn中加了一個延遲5秒,所以它隱藏了更長的時間,仍然沒有響應。 http://jsfiddle.net/lexbi/hWvJ4/44/ – joe

+0

在您最新的jsfiddle中,由於動畫的異步性質,「可見」的3個測試將始終爲FALSE。在「bubbletest」代碼的開頭添加一個「alert」,你會看到,或者更好的使用Firefox下的Firebug來設置斷點並檢查DIV的屬性。問候 – Neil

+0

喬,你最好添加和刪除一個類[例如$('#headlights')。addClass('visible')]當你在fadeIn和fadeOut之後爲「headlights」div,然後測試那個類[e,g,if($('#headlights')。hasClass('可見')],而不是試圖通過查看「可見性」屬性來做到這一點 – Neil