vue中監(jiān)聽(tīng)scroll事件失效的問(wèn)題及解決
vue監(jiān)聽(tīng)scroll事件失效問(wèn)題
vue項(xiàng)目中遇到需要監(jiān)聽(tīng)頁(yè)面某個(gè)元素距頂部距離實(shí)現(xiàn)吸頂效果,正常的window.addEventListener('scroll', this.handleScroll)完全失效,經(jīng)過(guò)一段時(shí)間的探索發(fā)現(xiàn)這個(gè)事件在子組件中會(huì)遇到問(wèn)題。
可以用元素上的 @scroll事件來(lái)監(jiān)聽(tīng)滾動(dòng),但有一點(diǎn)要注意,scroll的元素需要確認(rèn) 設(shè)置overflow-y:scroll;height:100%的樣式。
下面附實(shí)現(xiàn)成功的代碼
1.頂部元素添加 @scroll事件監(jiān)聽(tīng)
<div class="specialty-store-page" ref="scrollBox" @scroll="handleBlScroll">
2.確保監(jiān)聽(tīng)的元素 overflow-y:scroll;height:100%
3.監(jiān)聽(tīng)事件
? ?handleBlScroll() { ? ? ? let _blTop = this.$refs.bl.getBoundingClientRect().top ? ? ? this.tabFixed = _blTop < 46 ? ? ? this.navShowFlag = this.$refs.scrollBox.scrollTop > this.RootEM * 0.92 ? ? ? let _gcTop = this.$refs.goodsContainer.getBoundingClientRect().top//這里是子元素距頂部的高度 ? ? }
可以在父元素中添加滾動(dòng),通過(guò) this.$refs.goodsContainer.getBoundingClientRect().top來(lái)獲取子元素的頂部距離進(jìn)行判斷
vue監(jiān)聽(tīng)scroll事件
很小的功能,記錄一下
mounted() { ?? ?window.addEventListener('scroll', this.handleScroll, true) }, methods: { ?? ?handleScroll: function() { ? ? ? ?? ?console.log(document.documentElement.scrollTop || document.body.scrollTop) ? ? } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue+Element+Springboot圖片上傳的實(shí)現(xiàn)示例
最近在學(xué)習(xí)前段后分離,本文介紹了Vue+Element+Springboot圖片上傳的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11Vue前端書(shū)寫(xiě)規(guī)范大全(非常詳細(xì)!)
在團(tuán)體開(kāi)發(fā)項(xiàng)目中,為了團(tuán)隊(duì)所有成員書(shū)寫(xiě)可維護(hù)的代碼,而不是一次性的代碼,讓團(tuán)隊(duì)當(dāng)中其他人看你的代碼能一目了然,下面這篇文章主要給大家介紹了關(guān)于Vue前端書(shū)寫(xiě)規(guī)范的相關(guān)資料,需要的朋友可以參考下2023-01-01Vue-Cli中自定義過(guò)濾器的實(shí)現(xiàn)代碼
本篇文章主要介紹了Vue-Cli中自定義過(guò)濾器的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Vue3?源碼分析reactive?readonly實(shí)例
這篇文章主要為大家介紹了Vue3?源碼分析reactive?readonly實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10vue3與webpack5安裝element-plus樣式webpack編譯報(bào)錯(cuò)問(wèn)題解決
這篇文章主要介紹了vue3與webpack5安裝element-plus樣式webpack編譯報(bào)錯(cuò),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04vue中的Object.freeze()?優(yōu)化數(shù)據(jù)方式
這篇文章主要介紹了vue中的Object.freeze()優(yōu)化數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04