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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:34:00
字體:
來源:轉載
供稿:網友

遇到的問題

最近在開發一個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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 固镇县| 监利县| 华宁县| 嘉黎县| 金华市| 牟定县| 会东县| 星子县| 雷山县| 衢州市| 中卫市| 饶平县| 舟曲县| 富蕴县| 甘谷县| 策勒县| 商城县| 景洪市| 罗定市| 库车县| 灵宝市| 南京市| 开江县| 新昌县| 嘉禾县| 滨海县| 铜陵市| 尉氏县| 汪清县| 南平市| 安阳县| 卫辉市| 含山县| 信阳市| 嘉善县| 方山县| 阳泉市| 邵东县| 西丰县| 诸城市| 平邑县|