当scrollTop达到某个值(比如150)后,如何防止滚动。
$(window).scroll(function() {
if($(window).scrollTop() >=50)) {
return false; // basically don't scroll
}
});
当scrollTop达到某个值(比如150)后,如何防止滚动。
$(window).scroll(function() {
if($(window).scrollTop() >=50)) {
return false; // basically don't scroll
}
});
.scrollTop
使用 scrollTo
函数设置 scrollHeight
,它不会从 x 滚动到 y,只是直接滚动到 y。
所以基本上你无法停止滚动,因为事件在滚动到 y 后才被调用。在比较高度后,在处理程序中可能需要设置所需的 scrollHeight
。
if($(window).scrollTop() >=50)
{
$(window).scrollTop(0);
}
注意:在元素上使用它是可以忍受的,但在window对象上使用会让用户感到烦恼。上面只是为了展示它的工作原理。
尝试在 >> http://jsfiddle.net/KwgMj << 中滚动并看看它有多烦人。
$(window).scroll(function(e) {
if($(window).scrollTop() >=50)) {
$(window).scrollTop(50)
}
});
除了显而易见的问题,你为什么想要这个呢?
我建议另一种方法。
有一个填满整个窗口的包装器,有一定的高度,并在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>
.scrollTop
使用scrollTo
函数设置scrollHeight
。它不会从x滚动到y,而是直接到达y。因此,基本上您无法停止滚动,因为事件将在其设置为y之后调用。在比较高度后,在处理程序中可能会设置所需的scrollHeight
。if($(window).scrollTop() >=50) { $(window).scrollTop(0); }
- 注意:在元素上使用它是可以忍受的,但在窗口对象上使用它会让用户感到烦恼。上面只是为了展示它的工作原理。尝试在>> http://jsfiddle.net/KwgMj/ <<中滚动并看看它有多烦人。 - Selvakumar Arumugam