js控制页面滚回上一记录位置

前言:在公共方法中进行某个操作后,页面会滚回顶部,但是在某些时候需要在原来的位置显示弹框提示,便需要在操作前记录滚动条位置,操作后滚回之前记录的位置。

在操作别的前调用以记录当前scroll位置:

//停在当前位置
function onbeforeunload(){
    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中
}

在操作完后使页面scroll滚回原来位置:

function onload(){ 
    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]);
    }
}

 

posted @ 2022-08-01 11:16  阳光下的向日葵  阅读(117)  评论(0编辑  收藏  举报