js實(shí)現(xiàn)刷新頁面后回到記錄時(shí)滾動(dòng)條的位置【兩種方案可選】
當(dāng)div中綁定數(shù)據(jù),給它一個(gè)屬性overflow-y: scroll,添加長度大小,使其能夠出現(xiàn)滾動(dòng)條;每次刷新的時(shí)候滾動(dòng)條總是會(huì)出現(xiàn)在最上方,這使我很頭疼,經(jīng)過查閱網(wǎng)上資料,返現(xiàn)兩種方法可行。如下:
第一種方案
將上一個(gè)頁面的div的scrolltop距離長度記錄在cookie中,然后通過js調(diào)整刷新頁面時(shí)的長度記錄,代碼如下:
js代碼:
<script> var _h = 0; function SetH(o) { _h = o.scrollTop SetCookie("a", _h) } window.onload = function () { document.getElementById("x").scrollTop = GetCookie("a");//頁面加載時(shí)設(shè)置scrolltop高度 } function SetCookie(sName, sValue) { document.cookie = sName + "=" + escape(sValue) + "; "; } function GetCookie(sName) { var aCookie = document.cookie.split("; "); for (var i = 0; i < aCookie.length; i++) { var aCrumb = aCookie[i].split("="); if (sName == aCrumb[0]) return unescape(aCrumb[1]); } return 0; } </script>
html中代碼如下:
<div id="x" style="height: 200px; overflow: scroll" onscroll="SetH(this)"> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> </div>
第二種方案
1.通過div的onscroll事件記錄滾動(dòng)條的scrollTop值,設(shè)置到document.cookie
2.頁面加載時(shí)再讀取document.cookie的值,設(shè)置給div的scrollTop
js代碼實(shí)現(xiàn):
<script type="text/javascript"> function KeepScrollBar() { var scrollPos; if (typeof window.pageYOffset != 'undefined') { scrollPos = window.pageYOffset; } else if (typeof document.body != 'undefined') { scrollPos = document.getElementById('divContent').scrollTop; } document.cookie = "scrollTop=" + scrollPos; } window.onload = function (){ if (document.cookie.match(/scrollTop=([^;]+)(;|$)/) != null) { var arr = document.cookie.match(/scrollTop=([^;]+)(;|$)/); document.getElementById('divContent').scrollTop = parseInt(arr[1]); } } </script>
html:
<div class="content" data-role="tab-content" data-id="course-a" runat="server" id="divContent" style="height: 365px; overflow-y: scroll" onscroll= "KeepScrollBar()"> <p> 1</p> <p> 2</p> <p> 3</p> <p> 4</p> <p> 5</p> <p> 6</p> <p> 7</p> <p> 8</p> <p> 9</p> <p> 10</p> <p> 11</p> <p> 12</p> <p> 13</p> <p> 14</p> <p> 15</p> <p> 16</p> </div>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- js監(jiān)聽html頁面的上下滾動(dòng)事件方法
- JS實(shí)現(xiàn)部分HTML固定頁面頂部隨屏滾動(dòng)效果
- 原生js頁面滾動(dòng)延遲加載圖片
- js判斷滾動(dòng)條是否已到頁面最底部或頂部實(shí)例
- 當(dāng)滾動(dòng)條滾動(dòng)到頁面底部自動(dòng)加載增加內(nèi)容的js代碼
- jquery滾動(dòng)組件(vticker.js)實(shí)現(xiàn)頁面動(dòng)態(tài)數(shù)據(jù)的滾動(dòng)效果
- 原生Js頁面滾動(dòng)延遲加載圖片實(shí)現(xiàn)原理及過程
- JS實(shí)現(xiàn)頁面滾動(dòng)到關(guān)閉時(shí)的位置與不滾動(dòng)效果
相關(guān)文章
javascript 窗口加載蒙板 內(nèi)嵌網(wǎng)頁內(nèi)容
用于在現(xiàn)有窗口上加載蒙板,在蒙板內(nèi)在嵌入其他頁面內(nèi)容2010-11-11如何在selenium中使用js實(shí)現(xiàn)定位
這篇文章主要介紹了如何在selenium中使用js實(shí)現(xiàn)定位,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08ES6數(shù)組復(fù)制和填充方法copyWithin()、fill()的具體使用
本文主要介紹了ES6數(shù)組復(fù)制和填充方法copyWithin()、fill()的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10基于JS實(shí)現(xiàn)新聞列表無縫向上滾動(dòng)實(shí)例代碼
當(dāng)新聞較多,并且空前有限的時(shí)候,使用滾動(dòng)是一個(gè)不錯(cuò)的選擇,本章節(jié)就通過代碼實(shí)例介紹一下如何實(shí)現(xiàn)此效果,對無縫向上滾動(dòng)實(shí)例代碼感興趣的朋友一起學(xué)習(xí)吧2016-01-01JavaScript實(shí)現(xiàn)彩虹文字效果的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)彩虹文字效果的方法,涉及javascript操作文字樣式的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04JS數(shù)組方法push()、pop()用法實(shí)例分析
這篇文章主要介紹了JS數(shù)組方法push()、pop()用法,結(jié)合實(shí)例形式分析了JavaScript數(shù)組push()與pop()方法基本功能、原理、使用方法與操作注意事項(xiàng),需要的朋友可以參考下2020-01-01