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

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

圖片精選

主站蜘蛛池模板: 扶沟县| 泽库县| 安丘市| 隆回县| 潼南县| 嘉鱼县| 民权县| 奉贤区| 星座| 图们市| 孝昌县| 花垣县| 博白县| 青浦区| 普安县| 松溪县| 安新县| 通海县| 溆浦县| 香港 | 沾益县| 光山县| 谢通门县| 太康县| 三原县| 大连市| 博罗县| 政和县| 明水县| 高青县| 石首市| 诏安县| 高安市| 宜阳县| 宜丰县| 瓮安县| 志丹县| 长宁区| 安福县| 合江县| 平安县|