防止自动浏览器滚动刷新而不使用哈希

时间:2013-02-20 21:16:04

标签: javascript jquery google-chrome browser

与我的问题类似here是否有任何方法可以防止自动滚动而不使用散列/锚点。该帖子中描述的方法围绕检查是否存在哈希。

有没有办法知道如果页面正在刷新或只是访问过,浏览器是否有滚动到OR的点。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,localStoragesessionStorage可能会有所帮助。

如果重新加载页面(收听beforeunloadunload),只需缓存当前的滚动偏移量,然后在页面加载时将其恢复:

var $window = $(window).on({
  beforeunload: function() {
    window.sessionStorage.scrollLeft = $window.scrollLeft()
    window.sessionStorage.scrollTop = $window.scrollTop()
  },
  load: function() {
    $window.scrollLeft(window.sessionStorage.scrollLeft)
    $window.scrollTop(window.sessionStorage.scrollTop)
  }
})