将新页面滚动到相同的页面滚动位置
New page to same page scroll position
对于打开新页面的链接$("#english")
,我使用下面的代码使新页面转到与上一页面(其中包含链接)相同的页面滚动位置。
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时,新页面从页面顶部开始,不会转到相同的页面滚动位置。有人吗?我如何使这个跨浏览器验证?
原因是firefox为document.body.scrollTop
返回0
相反,Firefox希望您使用document.documentElement.scrollTop
,但它不适用于Safari。
有许多可能的属性在某些浏览器中有效,而在其他浏览器中无效。
根据我的经验,window.pageYOffset
效果最好(IE>=9)
所以这是有效的代码(感谢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>
相关文章:
- 有没有一种方法可以直接从cordova获得滚动位置
- 根据滚动位置动态更改href
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 浏览器持续滚动位置
- Sammy.js缓存和滚动位置时,返回历史
- PHP保持滚动位置
- 按下后退按钮时,如何保持可滚动区域的滚动位置
- 滚动位置 (scrollTop) 硬件是否在浏览器中加速
- 在 React 中创建滚动位置指标
- 关闭移动菜单后恢复滚动位置
- 检测可滚动元素内的滚动位置
- 如何在反应性呈现新帖子时保持滚动位置
- UI 路由器 - 在状态之间转换时记住滚动位置
- 单击下拉列表时保持滚动位置(javascript)
- 保留选项后的滚动位置(单击时)
- js-scrollToEl获取滚动位置
- Backbone.js路由和滚动位置
- 如何更改页眉'的底部边框颜色取决于滚动位置
- 如何精确地获得页面的最大滚动位置
- 导航栏固定底部位置,当到达滚动位置时切换到静态