【问题标题】:Prevent scroll jump during refreshing a long HTML page在刷新长 HTML 页面时防止滚动跳转
【发布时间】:2013-11-30 04:18:29
【问题描述】:

刷新一个长的 HTML 页面时,滚动位置被初始化到顶部,然后跳转到最后一个滚动位置。

有没有办法在刷新时停止这种滚动跳转行为并将滚动位置初始化为最后一个滚动位置?

【问题讨论】:

  • 问题是,您使用的是原生 javascript 还是 jQuery 之类的库?

标签: javascript html


【解决方案1】:

使用html5 localStorage功能怎么样。

window.addEventListener('scroll', function () {
    localStorage.scrollX = window.scrollX;
    localStorage.scrollY = window.scrollY;
})
window.addEventListener('load',function () {
    window.scrollTo(localStorage.scrollX || 0, localStorage.scrollY || 0);
})

查看http://jsfiddle.net/g5NKG/10/show/

【讨论】:

    【解决方案2】:

    听起来你可能需要来自 jQuery 的 .scrollTop() 方法,发现 here

    所以:

    $(document).ready(function(){
        $(this).scrollTop(0);
    });
    

    从 cmets 中的链接,这也是一个快速修复:

    $(document).scrollTop(0);
    

    【讨论】:

    • 最后滚动位置!
    • 是的,@TomChung,还有其他一些选择 here
    【解决方案3】:

    这不只是默认的浏览器行为吗?你所描述的听起来所有的市长浏览器都已经在这样做了。

    【讨论】:

    • 是的,浏览器不会将页面重置为页面顶部,除非您在刷新时告诉它们。
    猜你喜欢
    • 2021-09-07
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多