如何实现以下功能?当滚动条到达某个点时,我需要向上滚动一定量的像素?
与JS / jQuery不太一样,可能将滚动事件绑定到文档,但实际上不知道如何实现这一点。
这就是我所拥有的,但它不起作用:
$(document).bind('scroll',function(e){
if (
$(this).offset().top > 3000)
{
$.scrollTo('-800px', 800, { axis:'y' });
}
});
答案 0 :(得分: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);
}
});