用js的window.location.href 刷新页面之后,希望页面固定在刷新页面前的位置,而不是回到页首,应该怎么办?
http://lesscss.cn/features/#mixins-feature-the-important-keyword
会直接跳转到Id
为mixins-feature-the-important-keyword
的位置
如果是任意位置的话,只能存储在本地(cookie
,localStorage
),刷新之后js
取出位置再滚动到指定位置。
个人建议,
页面滚动的时候绑定一个事件监听,将当前页面的url和滚动距离写入 localStorage或者cookie,
进入页面的时候从localStorage或者cookie取出当前url对应的滚动距离,如果有,滚动到具体位置,如果没有。不滚动
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
这个问题的核心在于如何跨页面传值,刷新相当于跨页面了,常用的就那么几种,window.name, cookie, localStorage, location.hash .....
实现思路:
可以实时监听onscroll事件,获得实时的页面高度,然后缓存起来,或者监听页面关闭事件
onbeforeunload
,获取当前的scrollTop,这个事件可能有兼容性问题。当页面加载完成后,从之前缓存的地方读取出数据,再scroll滚动到那个地方去。