如何获取和设置当前网页滚动位置?

新手上路,请多包涵

如何获取和设置当前网页滚动位置?

我有一个很长的表单,需要根据用户操作/输入进行刷新。发生这种情况时,页面会重置到最顶部,这对用户来说很烦人,因为他们必须向下滚动到他们所在的位置。

如果我可以在页面重新加载之前捕获当前滚动位置(在隐藏的输入中),那么我可以在重新加载后将其设置回来。

原文由 xyz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 315
2 个回答

您正在寻找 document.documentElement.scrollTop 属性。

原文由 SLaks 发布,翻译遵循 CC BY-SA 2.5 许可协议

当前接受的答案是不正确的 - document.documentElement.scrollTop 在 Chrome 上总是返回 0。这是因为 WebKit 使用 body 来跟踪滚动,而 Firefox 和 IE 使用 html

要获得当前位置,您需要:

 document.documentElement.scrollTop || document.body.scrollTop

您可以像这样将当前位置设置为页面下方 1000 像素:

 document.documentElement.scrollTop = document.body.scrollTop = 1000;

或者,使用 jQuery(当你在做的时候给它做动画!):

 $("html, body").animate({ scrollTop: "1000px" });

原文由 tobek 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题