2

我在网上看到的大多数方法/事件只返回一个用户当前滚动页面的值。如何使客户端*真正滚动?我打算做的是让客户端在某个操作后向下滚动 215px(从它们当前所在的位置)。

更新

我有这个工作可以在我想要的事件上向下滚动 215px:

$(".mobile_text_focus_fix").focus(function(){
var top = document.body.scrollTop;
top += 215;
window.scrollTo(0,top)
});

但是,这似乎不允许客户端从文档底部滚动到 215px 以下。如果客户端在底部的 215px 以内,或者在底部,它会从底部向上移动到 215px。如果客户端距离底部刚刚超过 215px,它只会向下滚动到 215px。我试图让客户端向下滚动 215px,或者如果它们距离文档底部小于 215px,则一直向下滚动。

更新

我当前的代码是计算一次文档的高度,每次都根据它的初始计算滚动,这导致了上面段落中提到的奇怪问题。

但是,我的文档会根据注入到正文的 xml 更改大小,并且我还需要能够将客户端向下滚动 215px,或者如果它们已经在底部的 215px 范围内,则可以滚动到文档底部的底部,每个用户执行特定操作的时间。

此操作可能会在滚动到不同高度时发生多次,或者通过 xml 将不同内容放置在页面上,这将改变文档高度。所以基本上,我怎样才能执行我上面的代码正在执行的相同任务,但每次都重新计算文档高度?

4

1 回答 1

2

首先,您必须获取文档的当前位置document.body.scrollTop并添加215到它。然后使用window.scrollTojQuery 或 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');
于 2013-03-07T15:33:27.503 回答