1

如何实现以下功能?当滚动条到达某个点时,我需要向上滚动一定数量的像素吗?

用 JS/jQuery 不太好,可能要将滚动事件绑定到文档,但真的不知道如何实现这一点。

这就是我所拥有的,但它不起作用:

  $(document).bind('scroll',function(e){

            if (
                    $(this).offset().top  > 3000) 
            {
                $.scrollTo('-800px', 800, { axis:'y' });
            }

    });
4

1 回答 1

1

尝试与document.body.scrollTop比较document.body.clientHeight。如果它达到您想要的点scrollBy(),请使用该方法增加一些像素。

更新后编辑:您正在混合scrollTo(滚动到页面上的绝对位置)和scrollBy(从当前滚动位置向上或向下滚动)。此外,这些不是 jQuery 方法,因此请在没有$.

编辑 2:您不能offset()用于滚动位置。它只获取页面上元素的位置。

这是一个工作示例:

$(document).bind('scroll', function(){
    if (document.body.scrollTop > 3000) {
        scrollBy(0, -800);
    }
});
于 2013-07-26T17:21:47.763 回答