2017-02-27 33 views
0

我在瀏覽器窗口大小不同時設置動畫時有問題,換句話說,動畫響應。否則如果有條件的邏輯運算符不工作在Jquery

在下面的代碼中,只有第一個If塊有效。 else If塊不起作用,沒有語法錯誤。

感謝您的幫助。

$(window).scroll(function(){ 
var firstAnimation = function() { 
    $('#in-view').delay(300).css("display","block").animate({   
     opacity:1, 
     right: -150 
    },'slow'); 
}; 

var h4Animation = function() { 
$('#hr1').delay(500).animate({ 
    width: '60%' 
},'200'); 
}; 


if ($(window).width() <= 768) { 
    if ($(window).scrollTop() > 200) { 
     h4Animation(); 
     firstAnimation();  
    } else if ($(window).width() >= 769) { 
     if ($(window).scrollTop() > 100) { 
      h4Animation(); 
      firstAnimation();    
     } 
    } 
} 
}); 
+0

我沒有看到你的代碼中的任何問題,所以你可以張貼的jsfiddle向我們展示你的問題究竟是什麼? –

+0

正確縮進代碼後 - 您確定elseif的位置正確嗎?我好像elseif應該在第一級 - 綁定到window.height而不是第二級。 – Christoph

+0

正如我在下面的評論中所述。我忘了關閉第一個條件。無論如何,感謝您的幫助。 – FabMon

回答

0

你的其他人在錯誤的地方:

if ($(window).width() <= 768) { 
    if ($(window).scrollTop() > 200) { 
     h4Animation(); 
     firstAnimation();  
    } else if ($(window).width() >= 769) { // how can window width be both <= 768 and >= 769? 
     if ($(window).scrollTop() > 100) { 
      h4Animation(); 
      firstAnimation();    
     } 
    } 
} 
}); 

相反:

if ($(window).width() <= 768) { 
    if ($(window).scrollTop() > 200) { 
     h4Animation(); 
     firstAnimation();  
    } 
} 
else if ($(window).width() >= 769) { // the condition isn't really necessary since if it is not <= 768 it will be >= 768 
     if ($(window).scrollTop() > 100) { 
      h4Animation(); 
      firstAnimation();    
     } 
    } 
} 
}); 
+0

由於我之前對代碼進行了更改,因此我忘記了關閉第一個條件。問題現在已經解決了。順便說一句,我認爲瀏覽器會混淆相同的值768小於或大於所以我添加了一個像素,但它是多餘的。感謝MikeS的幫助 – FabMon