如何获取和设置当前网页滚动位置?
我有一个很长的表单,需要根据用户操作/输入进行刷新。发生这种情况时,页面会重置到最顶部,这对用户来说很烦人,因为他们必须向下滚动到他们所在的位置。
如果我可以在页面重新加载之前捕获当前滚动位置(在隐藏的输入中),那么我可以在重新加载后将其设置回来。
原文由 xyz 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何获取和设置当前网页滚动位置?
我有一个很长的表单,需要根据用户操作/输入进行刷新。发生这种情况时,页面会重置到最顶部,这对用户来说很烦人,因为他们必须向下滚动到他们所在的位置。
如果我可以在页面重新加载之前捕获当前滚动位置(在隐藏的输入中),那么我可以在重新加载后将其设置回来。
原文由 xyz 发布,翻译遵循 CC BY-SA 4.0 许可协议
当前接受的答案是不正确的 - 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 许可协议
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
您正在寻找
document.documentElement.scrollTop
属性。