最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS返回頁(yè)面時(shí)自動(dòng)回滾到歷史瀏覽位置

 更新時(shí)間:2018年09月26日 10:27:31   作者:丁俊杰_  
這篇文章主要介紹了JS返回頁(yè)面時(shí)自動(dòng)回滾到歷史瀏覽位置的相關(guān)知識(shí),本文給大家使用的是SessionStorage來(lái)存儲(chǔ)頁(yè)面內(nèi)容,在返回頁(yè)面時(shí)重新加載,具體實(shí)現(xiàn)代碼大家跟隨小編一起看看吧

在我的系統(tǒng)實(shí)際開(kāi)發(fā)過(guò)程中遇到一個(gè)需求,我需要讓?xiě)?yīng)用在各個(gè)頁(yè)面間跳轉(zhuǎn)時(shí)回到每頁(yè)原先瀏覽到的位置,方便用戶(hù)使用。

在網(wǎng)上查資料時(shí),看到的方案有不少,眾說(shuō)紛紜,但真正給出可行可用代碼的寥寥無(wú)幾,所以我干脆按自己的想法用SessionStorage寫(xiě)了一個(gè)緩存頁(yè)面的方法,在離開(kāi)頁(yè)面時(shí)將需要緩存的容器中所有內(nèi)容都存到SessionStorage中,在返回頁(yè)面時(shí)重新加載,方便用戶(hù)操作,效果如下:

頁(yè)面緩存

使用方法

用法也很簡(jiǎn)單,咱一步一步講。

首先,在你需要緩存標(biāo)簽容器的類(lèi)名中加入cache,并寫(xiě)一個(gè)name作為該容器的唯一標(biāo)記,示例如下:

<div class="weui-tab cache" name="index">
 ....
</div>

其次,聲明全局變量,獲取緩存內(nèi)容和容器,示例如下:

var cache;
var cacheId = $(".cache").attr("name");

隨后,在頁(yè)面加載時(shí)調(diào)用緩存,在離開(kāi)頁(yè)面時(shí)生成緩存,代碼如下:

window.onload = function () {
 //載入緩存的列表
 loadCache(cacheId);
}

window.onunload = function () {
 //可以通過(guò)needCache這個(gè)flag來(lái)控制是否需要緩存
 if (localStorage.needCache == 'true') {
  //離開(kāi)頁(yè)面時(shí)生成緩存
  createCache(cacheId);
 }
}

/* *
 * @brief 可對(duì)指定多個(gè)控件進(jìn)行內(nèi)容和位置的緩存
 * @param cacheId 緩存元素的id
 * @return null
 * */
function createCache(cacheId) {
 //對(duì)內(nèi)容進(jìn)行緩存
 var list = [];
 var listController = $('.cache');
 $.each(listController, function (index, value, array) {
  list.push(value.innerHTML);
 })
 //對(duì)瀏覽到的位置進(jìn)行緩存
 var top = [];
 var topController = $(".cache").find(".top");
 $.each(topController, function (index, value, array) {
  top.push(value.scrollTop);
 })
 //存入sessionstorage中
 sessionStorage.setItem(cacheId, JSON.stringify({
  list: list,
  top: top
 }));
}

/* *
 * @breif 可對(duì)指定多個(gè)控件加載緩存
 * @param 加載緩存的id
 * @return null
 * */
function loadCache(cacheId) {
 //一定要放在整個(gè)js文件最前面
 cache = sessionStorage.getItem(cacheId);
 if (cache) {
  cache = JSON.parse(cache);
  //還原內(nèi)容
  var listController = $('.cache');
  $.each(listController, function (index, value, array) {
   value.innerHTML = cache.list[index];
  })
  //還原位置
  var topController = $(".cache").find(".top");
  $.each(topController, function (index, value, array) {
   value.scrollTop = cache.top[index];
  })
 }
}

大部分都可以直接copy,再根據(jù)你的需要改進(jìn)一下,就可以很好的使用了。

github傳送地址: https://github.com/JunJieDing666/YouZhiGou

總結(jié)

以上所述是小編給大家介紹的JS返回頁(yè)面時(shí)自動(dòng)回滾到歷史瀏覽位置,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

高清| 遂宁市| 宜君县| 嵊州市| 梓潼县| 沧源| 文安县| 阿荣旗| 泰来县| 大方县| 万州区| 金塔县| 共和县| 彰化县| 沙雅县| 嘉鱼县| 淮滨县| 敦化市| 军事| 资中县| 永康市| 西盟| 韶山市| 广宁县| 原平市| 日土县| 寿光市| 彩票| 永顺县| 武邑县| 黄冈市| 宣武区| 昭平县| 平泉县| 古田县| 长子县| 孟州市| 隆子县| 包头市| 吉安县| 玛纳斯县|