前言:在公共方法中进行某个操作后,页面会滚回顶部,但是在某些时候需要在原来的位置显示弹框提示,便需要在操作前记录滚动条位置,操作后滚回之前记录的位置。
在操作别的前调用以记录当前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]); } }