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

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

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

如果我可以在页面重新加载之前捕捉当前的滚动位置(在一个隐藏的input中),那么我可以在重新加载后重新设置它。

5 Solutions collect form web for “如何获取和设置当前的网页滚动位置?”

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

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

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

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

您可以将当前位置设置为1000px,如下所示:

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

或者,使用jQuery(当你在它的时候animation)!

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

使用document.documentElement.scrollTop或jQuery的$(window).scrollTop()时,Mac和iOS上的Google Chrome总是返回0

但是,它适用于:

window.pageXOffset为水平位置

垂直位置的window.pageYOffset

我去了HTML5的本地存储解决scheme…所有我的链接调用一个函数,它改变之前设置window.location:

 localStorage.topper = document.body.scrollTop; 

每个页面都有这个在body的onLoad:

  if(localStorage.topper > 0){ window.scrollTo(0,localStorage.topper); } 

另外,你可能想看看jQuery.ScrollTo插件

  • 如何获得在PHP中select框的多个选定的值?
  • 修改url而不重新加载页面
  • jQuery:为什么使用document.ready如果页面底部的外部JS?
  • 只能使用sed或awk从html页面中提取url的最简单的方法
  • 从JavaScript元素删除CSS类(没有jQuery)
  • 我可以在跨度标记中使用多个ItemProp for schema.org丰富片段吗?
  • JQuery,如何find具有类似ID的div列表
  • 检测在网页中使用哪种字体
  • 没有find图片的HTML
  • 高度等于dynamic宽度(CSSstream体布局)
  • 最简单的Facebook风格的“红色”通知的CSS