js實現重新整理頁面依然能夠使滾動條滾定在原來位置
大家知道你http協議是無狀態的,當重新整理網頁的時候,網頁之前的狀態不會保留,但是在實際應用中,可能有這樣的需求,就是保留原來滾動條的位置,下面就通過程式碼例項介紹一下如何實現此功能。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> *{ margin:0px; padding:0px; } #thediv{ width:20px; height:1000px; background:green; margin:0px auto; font-size:14px; color:red; text-align:center } </style> <script type="text/javascript"> window.onbeforeunload=function(){ var scrollPos; scrollPos=document.documentElement.scrollTop||document.body.scrollTop; document.cookie="scrollTop="+scrollPos; } window.onload=function(){ if(document.cookie.match(/scrollTop=([^;]+)(;|$)/) != null){ var arr=document.cookie.match(/scrollTop=([^;]+)(;|$)/); document.documentElement.scrollTop = parseInt(arr[1]); document.body.scrollTop = parseInt(arr[1]); } } </script> </head> <body> <div id="thediv">螞蟻部落歡迎您,只有努力奮鬥才會有美好的未來。</div> </body> </html>
程式碼採用cookie記錄重新整理之前滾動條的位置,效果必須要在伺服器環境下才能夠測試效果,下面介紹一下它的實現過程。
一.程式碼註釋:
1.window.onbeforeunload=function(){},重新整理網頁的時候會觸發onbeforeunload事件,當然具有一定的瀏覽器相容性問題。
2.var scrollPos,宣告一個變數用來儲存滾動條的位置。
3.scrollPos=document.documentElement.scrollTop||document.body.scrollTop,獲取頁面向上滾動的尺寸。
4.document.cookie="scrollTop="+scrollPos,將向上滾動的尺寸寫入cookie。
5.window.onload=function(){},文件內容完全載入完畢再去執行函式中的程式碼。
6.if(document.cookie.match(/scrollTop=([^;]+)(;|$)/) != null),如果存在對應的cookie內容。
7.var arr=document.cookie.match(/scrollTop=([^;]+)(;|$)/,生成一個陣列。
8.document.documentElement.scrollTop = parseInt(arr[1]),設定頁面向上滾動的尺寸,陣列的第二個元素就是正規表示式第一個字表示式匹配的內容,在這裡也就是"scrollTop="+scrollPos的scrollPos值。
9.document.body.scrollTop = parseInt(arr[1]),和上面同樣的道理,之所以8和9同時存在是為了瀏覽器相容性。
二.相關閱讀:
1.document.documentElement.scrollTop||document.body.scrollTop可以參閱document.body.scrollTop返回值為0解決方案一章節。
2.cookie操作可以參閱javascript讀寫cookie操作簡單介紹一章節。
3.match()函式可以參閱正規表示式match()函式一章節。
4.parseInt()函式可以參閱javascript parseInt()一章節。
相關文章
- 如何實現頁面重新整理後不定位到之前的滾動位置?
- 使用js控制滾動條的位置JS
- react記錄頁面的滾動條位置React
- js:返回到頁面時滾動到上次瀏覽位置JS
- 前端頁面自定義滾動條前端
- js實現 web頁面的滾動條下拉時載入更多JSWeb
- angular 監聽 Windows 滾動事件 實現頁面滾動載入AngularWindows事件
- JavaScript 滾動條定位指定位置JavaScript
- H5頁面滾動阻尼效果實現H5
- css實現隱藏滾動條並可以滾動內容CSS
- RecyclerView滾動位置,滾動速度設定View
- Flutter SingleChildScrollView 滾動頁面FlutterView
- 用AutoLayout實現分頁滾動
- vue監聽頁面中的某個div的滾動事件,並判斷滾動的位置Vue事件
- Vue.js 桌面端自定義滾動條元件|vue美化滾動條VScrollVue.js元件
- 我一個div有橫向滾動條,如何讓他頁面一載入就讓他滾動到中間的位置
- Vue 返回記住滾動條位置詳解Vue
- 如何用堆疊來儲存和恢復滾動條位置
- 當滑鼠滾動到指定位置,選單固定在頂部
- 10行程式碼實現頁面無限滾動行程
- 禁止頁面滾動的方法
- 遮罩層禁止頁面滾動遮罩
- 頁面圖片自動滾動
- 3種方法實現CSS隱藏滾動條並可以滾動內容CSS
- div滾動條樣式,水平滾動
- 隱藏滾動條保留滾動效果
- 直播平臺製作,禁止頁面滾動 / 滾動事件穿透事件穿透
- 兩種方式實現橫向滾動條
- selenium中JS如何處理滾動條JS
- css隱藏滾動條並可以滾動CSS
- vue 監聽頁面滾動事件Vue事件
- 使用 selenium (python),無法在頁面的 iframe 框架中實現對貌似是自定義滾動條進行滾動Python框架
- vue頁面有彈層,禁止頁面滾動Vue
- 原生JS實現隨著滑鼠滾動到元素位置觸發對應css3動畫,簡單易用滾動監測JSCSSS3動畫
- anime.js 網頁動畫庫,輕鬆實現網頁數字滾動效果JS網頁動畫
- css實現修改預設滾動條樣式CSS
- 三種方式實現平滑滾動頁面到頂部的功能
- 頁面沒有出現滾動條時底部懸浮顯示到最底部
- 移動端div跟隨滾動條滾動(自制