同一页面滚动位置

时间:2016-03-24 12:16:21

标签: javascript jquery

对于打开新页面的链接$("#english"),我使用下面的代码使新页面转到与上一页(包含其中的链接)所在位置相同的页面滚动位置。< / p>

if(localStorage.getItem('scroll'))  
    {
        window.scrollTo(0, parseInt(localStorage.getItem("scroll")));

    }



        $("#english").on("click",function()
        {
             localStorage.setItem("scroll", document.body.scrollTop);
        });

window.localStorage.clear();

使用Safari作为浏览器,效果很好,但是使用FireFox时,新页面会从页面顶部开始,而不会转到相同的页面滚动位置。有人吗?如何使这个跨浏览器证明?

2 个答案:

答案 0 :(得分:1)

原因是firefox为document.body.scrollTop返回0 相反,Firefox希望您使用document.documentElement.scrollTop,但是 - 它不适用于Safari。

有许多可能的属性在某些浏览器中有效,而在其他浏览器中则无效。

根据我的经验window.pageYOffset效果最佳(IE> = 9)

答案 1 :(得分:0)

所以这是有效的代码(感谢Jayms):

<script>

/*makes a new page jump to same scroll position as the scroll position when the link is activated*/ 

if(localStorage.getItem('scroll'))  
        {
            window.scrollTo(0, parseInt(localStorage.getItem("scroll")));

        }

$("#englishflag").on("click",function()
{
     localStorage.setItem("scroll", window.pageYOffset);
});


 window.localStorage.clear();

  /*END*/ 
</script>