2015-04-05 65 views
2

我發現了一個很好的腳本,用於在用戶滾動頁面時加載頁面內容。這篇文章的URL:CLICK HEREjQuery - 當窗口滾動90%時運行腳本

我有這個腳本的一個問題 - 它是當用戶滾動頁面在100%(當滾動在底部)時運行。我想在頁面的90%滾動時啓動這個腳本。

這裏是原代碼:

if($(window).scrollTop() + $(window).height() == $(document).height()) //user scrolled to bottom of the page? 

我想這樣的:

var percent = 90; 
    window_scrolled = ((percent/$(document).height())*100); 
    if($(window).scrollTop() + $(window).height() <= window_scrolled) //user scrolled to bottom of the page? 

,但它不能正常工作。爲什麼?腳本中的問題在哪裏?

+0

我想,問題在於我的腳本因爲我犯了一個錯誤,但我不知道究竟如何。 – Newester 2015-04-05 00:25:27

+0

我給出的鏈接是關於縮放,而不是滾動。我的錯。我刪了它。 – ThisClark 2015-04-05 00:35:05

回答

2

下面是完整的代碼:

所有的
var percent = 90; 
var window_scrolled; 

$(window).scroll(function() { 
    window_scrolled = ($(document).height()/100)*90; 

    if($(window).scrollTop() + $(window).height() >= window_scrolled) { 
     alert("scrolled to bottom"); 
    } 
}); 

首先,你在做數學錯誤。如果說,在文檔高度爲2000像素,你的代碼將返回4.5,而不是1800,所以:

((percent/$(document).height())*100) 

變爲:

(($(document).height()/100)*percent) 

而且,這樣的:

if($(window).scrollTop() + $(window).height() <= window_scrolled) 

變這個:

if($(window).scrollTop() + $(window).height() => window_scrolled) 
+0

yeaa。謝啦! – Newester 2015-04-05 00:34:58

1

在您的第二個代碼塊中,您的window_scrolled計算不正確爲文檔高度的90%。當您計算0.9 * height時,您正在計算0.9/height

它也看起來像我與window_scrolled比較是倒退,應該是>=而不是<=

我想你想要這樣的:

var percent = 90; 
var window_scrolled = (percent * $(document).height())/100; 

if ($(window).scrollTop() + $(window).height() >= window_scrolled) { 
    // at least part of the last 10% of the document is visible 
} 
相關問題