国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

解決Vue中mounted鉤子函數獲取節點高度出錯問題

2019-11-19 13:49:07
字體:
來源:轉載
供稿:網友

遇到的問題

最近在開發一個Vue的項目,好幾個頁面都有用到一個 頁面樓層滑動的組件,我就直接封裝成了一個,但是遇到一個bug,就是我需要得到這個組件的offsetTop,然后頁面滾動到這個位置的時候,就設置position屬性為fixed,讓他固定在屏幕上。問題是當我在mounted鉤子函數中獲取offsetTop的時候,在新開的頁簽中打開頁面,會得到錯誤的offsetTop,但是在當前頁面刷新,就不會有問題。

定位問題

后來查到問題,就是加載的問題,新窗口打開圖片,默認是沒有帶緩存的,圖片是GET請求,是異步的,js運行的肯定比圖片GET要快,所以當執行mounted鉤子函數的時候,圖片還沒有全部加載完,這時候就會得到一個錯誤的offsetTop。

解決方案

給圖片加上ref屬性,并在那個組件里的mounted鉤子函數中寫,

this.$refs.img.onload = ()=>{Bus.$emit('loadImgSuccess')}

這里的Bus是用的EventBus,兩個組件中事件響應的辦法,不懂或者感興趣的可以點這里EventBus。
需要得到offsetTop的組件里面

Bus.$on('loadImgSuccess', () => {var offsetTop = this.$refs.dom.offsetTop })

這時候就可以確認每次不管是頁面新打開還是當前頁刷新都可以得到正確的offsetTop。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂源县| 鲁甸县| 齐齐哈尔市| 珠海市| 高陵县| 涪陵区| 镶黄旗| 扬州市| 鸡东县| 隆德县| 舞阳县| 东乡县| 大化| 宝兴县| 图们市| 铜鼓县| 奉节县| 曲周县| 滁州市| 中牟县| 库伦旗| 平江县| 伊川县| 青田县| 西和县| 友谊县| 宁安市| 靖远县| 墨脱县| 驻马店市| 余江县| 新巴尔虎右旗| 江川县| 洪洞县| 晋宁县| 新昌县| 颍上县| 正定县| 五原县| 花垣县| 兴安县|