頂部狀態列點選 頁面滑動到指定位置 之 開始無法正確獲取位置資訊問題
阿新 • • 發佈:2021-09-04
1 點選goodsitem 跳轉到詳情頁 利用動態路由攜帶goods.iid;
2 跳轉到詳情頁 , 元件開始建立 ;created請求資料 ;資料傳遞到子元件 商品圖片展示元件;
3 當圖片載入完後通過 this.$refs.().$el.offstTop 獲Dom元素的offsetTop ,只有等最後一張圖片載入完之後才能獲取準確的高度 mounted;nexttick() 獲取的都不準
offsetTop:元素到offsetParent頂部的距離 ;
offsetParent:距離元素最近的一個具有定位的祖宗元素(relative,absolute,fixed),若祖宗都不符合條件,offsetParent為body。
4 獲取到每個元件模板的offsetTop後;每個狀態標籤通過 click事件 觸發 scroll.to(x,y,dealy) 滑動到相應位置;
5 再通過 監聽滾動位變化 與狀態列 一 一對應;
問題:進入詳情頁就點選狀態列標籤 但此時由於 展示圖片還沒加載出來;高度計算不準確;導致滑動距離錯誤
解決辦法:在圖片還沒載入完時,狀態列標籤點選無效;
1 通過props將儲存高度的陣列傳遞到 狀態列元件中;
2 在狀態點選事件函式中;判斷陣列長度是否為4 ;不為4 則 return ;為4則觸發事件回撥函式;
itemClick(index){ if(this.themeTopYs.length!==4){ return } this.currentindex=index; this.$emit('itemClick',index); },6 只針對於一進入詳情頁就開始點選狀態列 ,若等待一會兒再點選則不存在上述問題;