1. 程式人生 > 其它 >頂部狀態列點選 頁面滑動到指定位置 之 開始無法正確獲取位置資訊問題

頂部狀態列點選 頁面滑動到指定位置 之 開始無法正確獲取位置資訊問題

1 點選goodsitem 跳轉到詳情頁 利用動態路由攜帶goods.iid;

2 跳轉到詳情頁 , 元件開始建立 ;created請求資料 ;資料傳遞到子元件 商品圖片展示元件;

3 當圖片載入完後通過 this.$refs.().$el.offstTopDom元素的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 只針對於一進入詳情頁就開始點選狀態列 ,若等待一會兒再點選則不存在上述問題;