2012-03-09 142 views
0

當用戶在頁面上滾動時,我使用這一位代碼來隱藏菜單欄。它在Chrome 17.0.963.78上運行良好,但在其他瀏覽器上一直閃爍,即I.E. Firefox和Safari ..JavaScript滾動動作時隱藏div元素

$(window).load(function(){ 
    $(document).scroll(function(){ 
     $('#inner_floating').fadeOut(); 

     var scrollA = $('body').scrollTop(); 

     setTimeout(function(){ 
      if(scrollA == $('body').scrollTop()){ 
       $('#inner_floating').fadeIn(); 
      } 
     }, 100); 
    }) 
}); 

回答

1

的問題是,你的.scroll函數被調用用於滾動每個像素(或鼠標滾輪刻度),所以動畫正在運行連續多次。

嘗試這樣:

$(window).load(function(){ 
    $(document).scroll(function(){ 
     if($("#inner_floating:hidden").length == 0) { 
      $('#inner_floating').fadeOut(); 
     } 

     var scrollA = $('body').scrollTop(); 

     setTimeout(function(){ 
      if(scrollA == $('body').scrollTop() && $("#inner_floating:hidden").length > 0){ 
       $('#inner_floating').fadeIn(); 
      } 
     }, 100); 
    }) 
}); 

這樣的動畫僅在必要時發生。