需要反向滚动行为

时间:2013-07-26 17:16:41

标签: javascript jquery scroll

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

与JS / jQuery不太一样,可能将滚动事件绑定到文档,但实际上不知道如何实现这一点。

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

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

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

    });

1 个答案:

答案 0 :(得分:1)

尝试将document.body.scrollTopdocument.body.clientHeight进行比较。如果达到了您想要的点,请使用scrollBy()方法调高像素。

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

的情况下使用它们

编辑2: 您无法使用offset()作为滚动位置。它只获取页面上元素的位置。

这是一个有效的例子:

$(document).bind('scroll', function(){
    if (document.body.scrollTop > 3000) {
        scrollBy(0, -800);
    }
});