中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue3怎么利用store實現記錄滾動位置

發布時間:2021-04-09 13:10:17 來源:億速云 閱讀:320 作者:小新 欄目:開發技術

小編給大家分享一下vue3怎么利用store實現記錄滾動位置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

整體效果

在首頁列表進行滾動瀏覽時進入詳情頁后,切換回首頁時可以定位到之前瀏覽的位置。

vue3怎么利用store實現記錄滾動位置

監聽容器滾動事件

定義一個滾動事件,綁定到容器的滾動事件上,我這里做了一下節流

const savePosY = () => {
      if(state.timer) return;
      state.timer = setTimeout(() => {
        let node = document.querySelector(".contentWrapper");
        //記錄滾動位置
        store.commit("setY",node.scrollTop)
        state.timer = null;
        clearTimeout(state.timer);
      },100)

在mounted中獲取到容器進行綁定事件

onMounted(() => {
    let contentWrapper = document.querySelector(".contentWrapper");
    contentWrapper.addEventListener("scroll",savePosY);
})

store中的配置

store中比較簡單,僅包含一個state:y 以及 mutations:setY

export default {
    state:{
         y:0
    },
    mutations:{
        setY(state,value){
            state.y = value;
        }
    }
}

在頁面跳回時獲取滾動位置

同樣在onMounted中操作,否則獲取不到容器元素,而且由于vue中dom是異步渲染,所以我們需要在nextTick中操作才有效果

nextTick(() => { contentWrapper.scrollTop = store.state.y; })

以上是“vue3怎么利用store實現記錄滾動位置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麦盖提县| 松溪县| 顺平县| 霞浦县| 利川市| 铁岭县| 黄浦区| 棋牌| 桂东县| 南开区| 佛冈县| 常山县| 卓尼县| 平舆县| 山阴县| 韶关市| 永吉县| 崇仁县| 新源县| 兴业县| 个旧市| 紫云| 离岛区| 河西区| 同江市| 邳州市| 分宜县| 漠河县| 宁阳县| 柘荣县| 鄂托克旗| 枞阳县| 宽城| 泸溪县| 阿拉善左旗| 新昌县| 裕民县| 余姚市| 延长县| 江都市| 剑川县|