javascript - 如何让用户在 jQuery 中向下滚动?

标签 javascript jquery

我在网上看到的大多数方法/事件仅返回用户当前滚动页面的距离的值。我怎样才能使客户端*真正滚动?我打算做的是让客户端在执行某个操作后向下滚动 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/

相关文章:

javascript - jQuery 将 td 附加到动态创建的 tr

javascript - 在 jQuery 中从 document.ready 调用 onload 事件

javascript - Sequelize 更新与关联

php - 帖子内容中的目标图像

javascript - 如何为跨度实现 jQuery val()?

c# - 在 Asp.Net MVC 中显示从 Controller 返回的 JSON 数组数据

javascript - 在 puppeteer 请求中使用不同的 ip 地址

javascript - 在从 API 调用填充的 react 选择下拉列表中设置默认值

Javascript:将编号列表字符串转换为项目数组的正则表达式

javascript - 改进 Javascript 和模态 HTML