2012-05-07 111 views
1

如何可以滾動scrollTop的後防止達到一定值說150頁面後停止頁面滾動到一定點

$(window).scroll(function() { 
    if($(window).scrollTop() >=50)) { 
     return false; // basically don't scroll  
    } 
}); 
+0

我建議你不要停止瀏覽器的這種行爲,如果有其他的選擇。用戶可能會感到惱火。 – ShankarSangoli

+0

'.scrollTop'使用'scrollTo'函數設置scrollHeight。它不會從x滾動到y,它只會轉到y。所以基本上你不能停止滾動,因爲你的事件在被設置爲y後會被調用。比較高度後,您可以在處理程序內設置所需的scrollHeight。 'if($(window).scrollTop()> = 50){$(window).scrollTop(0); }' - **注意:**在元素上使用它是可以忍受的,但是窗口對象會讓用戶惱火。以上只是爲了展示它的工作原理。嘗試滾動>> http://jsfiddle.net/KwgMj/ <<看看它可能是多麼惱人。 –

回答

4

.scrollTop設置scrollHeight屬性使用scrollTo功能。它不會從x滾動到y,它只會轉到y。

所以基本上你不能停止滾動,因爲它被設置爲y後您的活動將被調用。比較高度後,您可以在處理程序內設置所需的scrollHeight

if($(window).scrollTop() >=50) 
{ 
    $(window).scrollTop(0); 
} 

注意:在使用它的元件上是可以忍受的,但在窗口對象將是惱人給用戶。以上只是爲了展示它的工作原理。

嘗試滾動>>http://jsfiddle.net/KwgMj < <看看它有多惱人。

+1

滾動條不會動搖。 – undefined

+0

@Raminson技術上它可以走到50px,但它只是顯示OP有一個滾動和禁用滾動可能會令用戶煩惱。 –

+0

是的,你是對的,防止用戶滾動是非常煩人的。 – undefined

3
$(window).scroll(function(e) { 
    if($(window).scrollTop() >=50)) { 
     $(window).scrollTop(50) 
    } 
}); 
+0

e.preventDefault();似乎沒有工作 – user1184100

+1

@ user1184100嘗試更新的答案,您可以手動更改scrollTop的值。 – undefined

1
從一個顯而易見的問題

除;你爲什麼要這個?

我建議另一種方法。

有填充整個窗口的包裝,有一定的高度,並在CSS使用overflow-x: hidden

這可能和可能不是你雖然之後在做什麼。

如果你希望做一個持續的網站,讓你保持滾動下一步,我建議你簡單地.slideDown()相關內容。

滾動是一個非常基本的功能,不應與修改沒有很好的理由。

編輯:
對於ipad的特定的解決方案,使用包裝:

<? if (strpos($_SERVER['HTTP_USER_AGENT'],'iPad')): ?> 
<!-- If iPad, add style --> 
<style type="text/css"> 
    div#wrapper { 
     height: 100%; 
     overflow: hidden; 
    } 
</style> 
<? endif; ?> 

<body> 
<div id="wrapper"> 
<!-- Content here --> 
</div> 
</body> 
+0

我試圖阻止在iPad中滾動來修復一個錯誤,所以檢查出是否可以通過腳本防止滾動。 – user1184100

+0

嘗試上面的編輯。 –

+0

感謝羅賓將通過設置值超過0來嘗試此以及 – user1184100