2011-08-19 76 views
0

我稍微新的if語句和我工作的一個動畫,其中:的jQuery/JavaScript的if語句與CSS值

如果<div id="headlights">顯示「無」在CSS(其不斷衰落輸入和輸出),我想在<div id="speech-bubble-dark">褪色。

而當<div id="headlights">顯示「塊」中的CSS,我想<div id="speech-bubble-sun">在褪色。

function bubbleTest(){ 
if($("#headlights").css("display") == "none") { 
    $("#speech-bubble").fadeOut('600'); 
    $("#speech-bubble-sun").fadeOut('600', function(){ 
     $("#speech-bubble-dark").fadeIn('600'); 
    }); 

} else{ 
     $("#speech-bubble").fadeOut('600'); 
     $("#speech-bubble-dark").fadeOut('600', function(){ 
      $("#speech-bubble-sun").fadeIn('600');    
     }); 

    } 
} 

我測試過它和淡入淡出做不工作,並依賴於顯示器是「none」或「block」,它顯示不同的div。

你會建議我做什麼?

+0

你調用函數bubbleTest多少次?如果只有一次,那麼它只會處理if塊一次,否則可能不會發生。也許你需要在bubbleTest函數中仔細定時調用setTimeout來重複調用它? – James

回答

0

JavaScript的原貼:

function bubbleTest(){ 
if($("#headlights").css("display") == "none") { 
    $("#speech-bubble").fadeOut('600'); 
    $("#speech-bubble-sun").fadeOut('600', function(){ 
     $("#speech-bubble-dark").fadeIn('600'); 
    }); 

} else{ 
     $("#speech-bubble").fadeOut('600'); 
     $("#speech-bubble-dark").fadeOut('600', function(){ 
      $("#speech-bubble-sun").fadeIn('600');    
     }); 

    } 
} 
bubbleTest(); 

出奇按預期工作,這裏是證明: http://codepen.io/anon/pen/zoNevZ

的問題一定是我如何調用該函數,這是我在當時(5年前)沒有提供。

0

嘗試更換這樣的:這個

$("#headlights").css("display") == "none" 

if (!$("#headlights").is(':visible')) 

:visible是一個jQuery 「選擇」(閱讀他們的文檔,如果你還沒有,他們是非常翔實) 。您可以使用is()方法來執行諸如檢查可見選擇器是否爲真的事情。同樣,你可以做這樣的表單元素:

if ($('#optInCheckbox').is(':checked')) 
+0

絕對有效,謝謝!但是我的其他陳述沒有。有任何想法嗎? – joe

1

我認爲你正在尋找這個。試試吧

function bubbleTest(){ 
    if(!$("#headlights").is(":visible")){//This will check for headlights is visible or not 
     $("#speech-bubble").fadeOut(600); 
     $("#speech-bubble-sun").fadeOut(600, function(){ 
     $("#speech-bubble-dark").fadeIn(600); 
     }); 
    } 
    else{ 
     $("#speech-bubble").fadeOut(600); 
     $("#speech-bubble-dark").fadeOut(600, function(){ 
     $("#speech-bubble-sun").fadeIn(600);    
     }); 
} 
+0

第一個泡泡消失得很好,但其他聲明不會淡出或淡入對方。你所做的一切肯定比我有任何方式更實際。 – joe

+0

並謝謝你! – joe

+0

@joe - 你可以更清楚你想要什麼,我可以編輯我的答案? – ShankarSangoli