页面刷新的时候记住滚动条的位置
2017-12-09 13:24
2166 查看
知识点,1、滚动条滚动时候的方法(scrolltop);2、cookie(浏览器或其它软件存cookie)3、onbeforeunload ;4、window.onload。
兼容性较好的代码如下:
window.onbeforeunload = function() {
var scrollPos;
if(typeof window.pageYOffset != 'undefined') {
scrollPos = window.pageYOffset;
} else if(typeof document.compatMode != 'undefined' &&
document.compatMode != 'BackCompat') {
scrollPos = document.documentElement.scrollTop;
} else if(typeof document.body != 'undefined') {
scrollPos = document.body.scrollTop;
}
document.cookie = "scrollTop=" + scrollPos; //存储滚动条位置到cookies中
}
window.onload = function() {
if(document.cookie.match(/scrollTop=([^;]+)(;|$)/) != null) {
var arr = document.cookie.match(/scrollTop=([^;]+)(;|$)/); //cookies中不为空,则读取滚动条位置
document.documentElement.scrollTop = parseInt(arr[1]);
document.body.scrollTop = parseInt(arr[1]);
}
}
主要的一点就是,利用了 onbeforeunload 这个时间,在即将离开当前页面(刷新或者关闭)时执行JavaScript。
其次就是得记住当前的页面滑到了哪里。不用的浏览器就得用不同的办法进行了。
再次就是在页面加载的时候进行滚动,滚动到我们想要去的地方。保存的方法可以用本地存储,也可以用cookie。
兼容性较好的代码如下:
window.onbeforeunload = function() {
var scrollPos;
if(typeof window.pageYOffset != 'undefined') {
scrollPos = window.pageYOffset;
} else if(typeof document.compatMode != 'undefined' &&
document.compatMode != 'BackCompat') {
scrollPos = document.documentElement.scrollTop;
} else if(typeof document.body != 'undefined') {
scrollPos = document.body.scrollTop;
}
document.cookie = "scrollTop=" + scrollPos; //存储滚动条位置到cookies中
}
window.onload = function() {
if(document.cookie.match(/scrollTop=([^;]+)(;|$)/) != null) {
var arr = document.cookie.match(/scrollTop=([^;]+)(;|$)/); //cookies中不为空,则读取滚动条位置
document.documentElement.scrollTop = parseInt(arr[1]);
document.body.scrollTop = parseInt(arr[1]);
}
}
主要的一点就是,利用了 onbeforeunload 这个时间,在即将离开当前页面(刷新或者关闭)时执行JavaScript。
其次就是得记住当前的页面滑到了哪里。不用的浏览器就得用不同的办法进行了。
再次就是在页面加载的时候进行滚动,滚动到我们想要去的地方。保存的方法可以用本地存储,也可以用cookie。
相关文章推荐
- 页面刷新的时候,记住滚动条的位置
- 页面刷新时记住滚动条的位置jquery代码
- 页面刷新时记住滚动条的位置jquery代码
- 页面刷新或者回发后DIV的滚动条位置不变!
- 页面的div中有滚动条,js实现刷新页面后回到记录时滚动条的位置
- [转]用一个JS代码实现页面刷新后保持页面滚动条的位置
- js控制 页面刷新,但滚动条位置不变 浏览器兼容
- 刷新后保持页面滚动条位置(ASP.NET VS Javascript)
- asp.net页面刷新或者回发后DIV的滚动条位置不变!(已解决)
- jsp页面刷新时,保持滚动条位置不变
- Asp.net 在刷新或提交页面后保持滚动条的位置
- 用一个JS代码实现页面刷新后保持页面滚动条的位置
- JQuery实现页面刷新滚动条自动滚动到特定位置
- Asp.net 在刷新或提交页面后保持滚动条的位置
- 页面刷新后滚动条保持原来位置,AutoPostBack=true后,保持页面焦点位置
- asp.net页面刷新后的滚动条位置不变
- JS刷新页面后滚动条的位置不变
- js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
- 页面刷新的时候滚动条默认置于底部
- Asp.net 在刷新或提交页面后保持滚动条的位置