2017-02-21 62 views
2

我試圖實現我的網站上一個div,即只要它滾出視口粘在瀏覽器的頂部。我發現了一個很好的腳本,它在桌面上運行良好。當我在iphone上測試它時,我有一個短暫的滯後,div滾動約半秒鐘,然後彈出到所需的位置。有沒有人知道我如何調整該腳本?jQuery腳本適用於臺式機,但落後於iphone

這裏是鏈接:jsFiddle

感謝您的幫助!

function sticky_relocate() { 
      var window_top = $(window).scrollTop(); 
      var div_top = $('#sticky-anchor').offset().top; 
      if (window_top > div_top) { 
       $('#sticky').addClass('stick'); 
       $('#sticky-anchor').height($('#sticky').outerHeight()); 
      } else { 
       $('#sticky').removeClass('stick'); 
       $('#sticky-anchor').height(0); 
      } 
     } 

     $(function() { 
      $(window).scroll(sticky_relocate); 
      sticky_relocate(); 
     }); 

回答

0

也許你可以使用setTimeout並清除當滾動多次調用的時間間隔。這可能有助於限制回調被調用的次數。

$(function() { 
    var timer; 
    $(window).scroll(function() { 
    clearInterval(timer); 
    timer = setTimeout(function() { 
     sticky_relocate(); 
    }, 50); 
    }); 
    sticky_relocate(); 
}); 
+0

THX的答覆。不用找了。我用另一個腳本(http://leafo.net/sticky-kit/#reference)嘗試過,似乎也有同樣的問題。 –

+0

...發現它。抱歉。 http://stackoverflow.com/questions/32828973/iphone-sticky-menu-jquery-onscroll-ios-9 –

相關問題