2013-02-28 18 views
0

正如John Resig的在他的博客here表明,它是一個非常非常不好的做法到處理程序附加到window.scroll事件,我只是困惑,如果我應該採取這種方法就像在各大網站做或在頁面末尾顯示一個加載更多div以獲取更多內容。window.scroll事件行爲不端

我用下面的測試代碼:

$(document).ready(function() { 
      $(window).scroll(function() { 
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 200) { 
    alert('end of page'); 
    } 
}); 
     });  

但它的作用是,一旦功能被激發,滾輪開始行爲不端和移動它不斷莫名其妙滾動頁面鼠標。

請幫助查找問題以及該功能的最佳實踐。

回答

0

我有更好的運氣與此相對照:

$(window).scroll(function() { 
    if ($(window).scrollTop() + $(window).height() >= $(document).height() - 65) { 
     alert('end of page'); 
    } 
}); 

希望這個解決你的問題,如果它不能夠你更好的解釋是給你麻煩的滾動行爲?

UPDATE:

$(window).on('scroll', function() { do_things(); }); 

function do_things(){ 

    if ($(window).scrollTop() + $(window).height() >= $(document).height() - 65) { 

     // Unbind the scroll 
     $(window).off('scroll'); 

     // Log a message 
     console.log('do some things here'); 

     // Wiat for 10 seconds 
     setTimeout(function() { 
      // Rebind the scroll 
      $(window).on('scroll', function() { do_things(); }); 
     }, 10000); 

    } 
} 
+0

我只是這個檢查過。就像在Chrome中一樣,一旦函數第一次觸發,一旦我將鼠標懸停在滾動條上,滾動條就會自動滾動,而不是像我們通常那樣拖動滾動條,而在FF中它不會完全觸發函數,而且會凍結頁。我在UBUNTU – coder101 2013-02-28 15:15:04

+0

沒有看到你的HTML/CSS,它可能很難幫助。這是我做的一個簡單的jsfiddle,你在運行時遇到同樣的問題嗎? http://jsfiddle.net/t5GLq/ – Lowkase 2013-02-28 15:20:09

+0

是的,它發生在你提供的jsfiddle的例子中。只要我將鼠標懸停在滾動條上,滾動條就會開始滾動。 – coder101 2013-02-28 15:22:03

相關問題