我在网上看到的大多数方法/事件仅返回用户当前滚动页面的距离的值。我怎样才能使客户端*真正滚动?我打算做的是让客户端在执行某个操作后向下滚动 215px(无论他们当前所在的位置)。
更新:
我可以在我想要的事件上向下滚动 215px:
$(".mobile_text_focus_fix").focus(function(){
var top = document.body.scrollTop;
top += 215;
window.scrollTo(0,top)
});
但是,这似乎不允许客户端滚动距离文档底部 215 像素以下。如果客户端距离底部 215 像素以内,或者位于底部,则它会向上移动到距离底部 215 像素。如果客户端距离底部刚刚超过 215 像素,则它只会向下滚动到 215 像素。我试图让客户端向下滚动 215px,或者如果它们距文档底部小于 215px,则一直向下滚动。
更新:
我当前的代码正在计算文档的高度一次,并根据每次的初始计算进行滚动,这导致了上面段落中提到的奇怪问题。
但是,我的文档根据注入(inject)正文的 xml 更改大小,并且我还需要能够将客户端向下滚动 215 像素,或者如果它们已经在文档底部的 215 像素内,则滚动到文档底部的底部。底部,每次用户执行特定操作时。
此操作可能会在滚动到不同高度时多次发生,或者通过 xml 将不同内容放置在页面上,从而更改文档高度。所以基本上,我如何执行与上面的代码正在执行的相同任务,但每次都重新计算文档高度?
最佳答案
首先,您必须通过 document.body.scrollTop
获取文档的当前位置,并向其添加 215
。然后使用 window.scrollTo
或 jQuery .animate()
从当前位置向下滚动 215px。
不使用 jQuery
var top = document.body.scrollTop;
top += 215;
window.scrollTo(0,top)
使用 jQuery 向下滚动动画
var top = document.body.scrollTop;
top += 215;
$("html, body").animate({ scrollTop: top },'100');
关于javascript - 如何让用户在 jQuery 中向下滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15275042/