最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JS返回頁面時自動回滾到歷史瀏覽位置

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:07:09
文檔

JS返回頁面時自動回滾到歷史瀏覽位置

JS返回頁面時自動回滾到歷史瀏覽位置:在我的系統(tǒng)實際開發(fā)過程中遇到一個需求,我需要讓應用在各個頁面間跳轉(zhuǎn)時回到每頁原先瀏覽到的位置,方便用戶使用。 在網(wǎng)上查資料時,看到的方案有不少,眾說紛紜,但真正給出可行可用代碼的寥寥無幾,所以我干脆按自己的想法用SessionStorage寫了一個緩存頁
推薦度:
導讀JS返回頁面時自動回滾到歷史瀏覽位置:在我的系統(tǒng)實際開發(fā)過程中遇到一個需求,我需要讓應用在各個頁面間跳轉(zhuǎn)時回到每頁原先瀏覽到的位置,方便用戶使用。 在網(wǎng)上查資料時,看到的方案有不少,眾說紛紜,但真正給出可行可用代碼的寥寥無幾,所以我干脆按自己的想法用SessionStorage寫了一個緩存頁

在我的系統(tǒng)實際開發(fā)過程中遇到一個需求,我需要讓應用在各個頁面間跳轉(zhuǎn)時回到每頁原先瀏覽到的位置,方便用戶使用。

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

頁面緩存

使用方法

用法也很簡單,咱一步一步講。

首先,在你需要緩存標簽容器的類名中加入cache,并寫一個name作為該容器的唯一標記,示例如下:

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

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

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

隨后,在頁面加載時調(diào)用緩存,在離開頁面時生成緩存,代碼如下:

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

window.onunload = function () {
 //可以通過needCache這個flag來控制是否需要緩存
 if (localStorage.needCache == 'true') {
 //離開頁面時生成緩存
 createCache(cacheId);
 }
}

/* *
 * @brief 可對指定多個控件進行內(nèi)容和位置的緩存
 * @param cacheId 緩存元素的id
 * @return null
 * */
function createCache(cacheId) {
 //對內(nèi)容進行緩存
 var list = [];
 var listController = $('.cache');
 $.each(listController, function (index, value, array) {
 list.push(value.innerHTML);
 })
 //對瀏覽到的位置進行緩存
 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 可對指定多個控件加載緩存
 * @param 加載緩存的id
 * @return null
 * */
function loadCache(cacheId) {
 //一定要放在整個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ù)你的需要改進一下,就可以很好的使用了。

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

總結(jié)

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

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JS返回頁面時自動回滾到歷史瀏覽位置

JS返回頁面時自動回滾到歷史瀏覽位置:在我的系統(tǒng)實際開發(fā)過程中遇到一個需求,我需要讓應用在各個頁面間跳轉(zhuǎn)時回到每頁原先瀏覽到的位置,方便用戶使用。 在網(wǎng)上查資料時,看到的方案有不少,眾說紛紜,但真正給出可行可用代碼的寥寥無幾,所以我干脆按自己的想法用SessionStorage寫了一個緩存頁
推薦度:
標簽: 位置 瀏覽 返回
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top