91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

昌吉市| 嘉峪关市| 长宁区| 陵水| 略阳县| 呼图壁县| 栾城县| 定襄县| 林口县| 安图县| 太仆寺旗| 兰溪市| 陵川县| 金昌市| 社会| 宜兴市| 九龙城区| 昌乐县| 太仓市| 隆子县| 呼玛县| 乐山市| 海安县| 信阳市| 宁陕县| 桓仁| 塔河县| 安福县| 江永县| 珲春市| 顺昌县| 竹山县| 南岸区| 科尔| 甘孜县| 来宾市| 巩义市| 辽中县| 福海县| 阳新县| 慈溪市|