国产探花免费观看_亚洲丰满少妇自慰呻吟_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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳江市| 寻乌县| 西昌市| 南昌县| 丰顺县| 巴马| 蛟河市| 乌兰县| 西乌珠穆沁旗| 阿克陶县| 甘德县| 威宁| 临夏县| 连山| 木兰县| 曲沃县| 阳信县| 通渭县| 将乐县| 石林| 祁东县| 吉林省| 石首市| 洛浦县| 土默特右旗| 凉城县| 安乡县| 习水县| 鲜城| 乌拉特后旗| 若尔盖县| 会宁县| 伽师县| 射洪县| 临桂县| 丰城市| 册亨县| 乌兰县| 雅安市| 娄底市| 东阿县|