页面到达某一点后停止页面滚动

时间:2012-05-07 14:58:51

标签: javascript jquery

如何在scrollTop达到某个值150之后阻止滚动。

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

3 个答案:

答案 0 :(得分:5)

.scrollTop使用scrollTo函数设置scrollHeight。它不会从x滚动到y,它只是转到y。

所以基本上你不能停止滚动,因为你的事件被设置为y后会被调用。您可以在比较高度后在处理程序内设置所需的scrollHeight

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

注意:在元素上使用它是可以忍受的,但在窗口对象上会让用户烦恼。以上只是为了说明它是如何工作的。

尝试滚动>> http://jsfiddle.net/KwgMj<<看看它有多烦人。

答案 1 :(得分:3)

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

答案 2 :(得分: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>