1、效果:

2、Jquery:

//记得引入jquery.min.js

<script type="text/javascript">
$(function(){
window.onbeforeunload=function(a){
console.log(a);
return false;
}
});
</script>

3、console.log(a);

/////////////////////////////  我是华丽的分割线  ///////////////////////////////

## (下面的cookie方法完全可以使用sessionStorage来替代,效果更好)##

sessionStorage方法:

<script type="text/javascript" src="jquery.min.js"><script>
<script type="text/javascript">
$(function(){
window.onbeforeunload=function(a){ //页面跳转走之前的操作,(return false;)可阻断关闭和跳转
console.log("当前页面滚动高度是::"+$(window).scrollTop());
sessionStorage.setItem("scrollTop",$(window).scrollTop());
console.log("当前页面的sessionStorage值是:"+sessionStorage.getItem("scrollTop")); //return false;
}
window.onload=function(){ //页面加载操作,进行数据渲染和高度滚动
if(sessionStorage.getItem("scrollTop")!==undefined && sessionStorage.getItem("scrollTop")>0){
$("html,body").animate({scrollTop:sessionStorage.getItem("scrollTop")}, 1000);
}
}
}); </script>

---------------------------------------------------------------------------------------------------------------------------

cookie方法:

下面介绍一种利用jquery的cookie进行页面返回跳转到历史浏览位置方法:

以前也做过差不多的功能,想了好久想到了解决方法,这个方法是一个通过的方法,不需要每个页面都写一次,这是利用cookie完成的,把记录的滚动条的位置放入cookie,下次进入这个页面的时候读取cookie,并设置滚动条位置为cookie中的值,从而让滚动条回到上一次的位置,实现返回上一次浏览的位置,如果多个页面要使用这个功能,那就要定义多个cookie来记录不同页面滚动高度,为了解决这个问题使用了一个相对简单的方法,就是cookie的值是以页面的文件名命名,js中创建cookie时,自动获取网页路径,截取页面的文件名,并将cookie名设置为此文件名,这样就可以避免多次命名,从而减少了代码

具体实现的代码如下:

<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script> <script type="text/javascript">
/*返回上次浏览位置*/
$(function () {
var str = window.location.href;
str = str.substring(str.lastIndexOf("/") + 1);
if ($.cookie(str)) {
$("html,body").animate({ scrollTop: $.cookie(str) }, 1000);
}
else {//首次进入
//do something,
}
}); $(window).scroll(function () {
var str = window.location.href;//http://www.baidu.com/index.php?do=login&user=liwei
str = str.substring(str.lastIndexOf("/") + 1);
var top = $(document).scrollTop();
$.cookie(str, top, { path: '/' });//存储名称、变量值、【有效期:默认session】、路径
return $.cookie(str);//Boolean,return非必须要的
})
/*返回上次浏览位置*/ </script>

代码可能有改进的地方,但能实现效果,ajax动态加载的页面也测试过可用,把代码贴在这里给有需要的人一点帮助

////////////////////////////  我是华丽的分割线  ////////////////////////////

最新文章

  1. 机器指令翻译成 JavaScript —— No.3 流程分割
  2. Lambda表达式的诞生过程
  3. 使用dynamic类型改进反射
  4. Unix网络编程(1)&mdash;&mdash;socket一窥
  5. Linux内核中流量控制
  6. PHP写日志什么时候需要加锁?
  7. Android sample 之模拟重力感应,加速度
  8. mysql启动报错:Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
  9. scala 数组 基本类型
  10. 远程开户系统开放API接口
  11. java算法 蓝桥杯 高精度加法
  12. Linux环境下启动MySQL数据库出现找不到mysqld.sock的解决办法!
  13. Dynamic web module 版本之间的区别
  14. jdbc crud
  15. Injection
  16. vue-cli 构建项目在IE中无法运行解决方式(build之后可运行)
  17. CentOS_mini下安装docker 之 yum mount
  18. Version Control,Git的下载与安装
  19. Ubuntu16.04 创建桌面快捷方式
  20. 如何mount一个Isilon的NFS的file share?

热门文章

  1. BZOJ 4031 [HEOI2015]小Z的房间(Matrix-Tree定理)
  2. GG同步到sqlserver报错一例 Invalid date format
  3. Win32 error code message
  4. 基于tiny4412的Linux内核移植(支持device tree)(三)
  5. HTML 标签的 enctype 属性
  6. $stateProvider resovle 无法找到的原因
  7. form表单提交时选择性传值到后台
  8. scala之Actors
  9. 通过web php 执行shell脚本,获取的结果与直接在命令行下获取的结果不同。
  10. 利用HTML5与jQuery技术创建一个简单的自动表单完成