2014-07-19 79 views
0

我想使用jquery的.animate在兩點之間淡化一個元素,並在滾動位置不在它們之間時淡出它。這裏是我的代碼,它不工作:在滾動位置之間觸發的jquery動畫

$(window).scroll(function(){ 
var top = $(this).scrollTop(); 
if(top > 50 && top < 200){ 
    $('#videosection').animate({opacity:'1'}); 
} 
if(top < 50 && top > 200){ 
    $('#videosection').animate({opacity:'1'}); 
} 
}); 

回答

0

如果(上 &頂部> 200){

此代碼不會有任何效果。這是不可能的同時少於50和200以上 - 在這個宇宙中沒有這樣的數字:)。這就是爲什麼Doa的代碼不起作用。

試試這個代碼:

var isCurrentlyVisible = false; 
$(window).scroll(function(){ 
    var top = $(this).scrollTop(); 
    if(!isCurrentlyVisible && top > 50 && top < 200){ 
     isCurrentlyVisible = true; 
     $('#videosection').stop().animate({ 
      "opacity":"1" 
     }); 
    } 
    if(isCurrentlyVisible && (top < 50 || top > 200)){ 
     isCurrentlyVisible = false; 
     $('#videosection').stop().animate({ 
      "opacity":"0" 
     }); 
    } 
}).trigger('scroll'); 

上jsFiddle.net

+0

Example有沒有辦法重新使用該腳本整個班級的元素,並設置進出點的HTML? –

+0

是的,當然有一種方法。我可以說更多:有很多方法可以做到這一點 - 這取決於情況和您的需求。您可以單獨處理每個元素的滾動,也可以在一個位置處理滾動,並根據滾動偏移更改每個元素的可見性。 – Gromo