本篇文章給大家分享的是有關(guān)怎么在vue中利用@scroll監(jiān)聽滾動(dòng)事件,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
沁水網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,沁水網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為沁水上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的沁水做網(wǎng)站的公司定做!在.vue的組件中
……
export default { name: 'demo', data () { return { msg: '', } }, methods: { scrollEvent(e){ console.log(e) }, } }
照上面的寫法,我發(fā)現(xiàn)即使我的li標(biāo)簽足夠多,撐滿一頁,頁面滾動(dòng)的時(shí)候并不能觸發(fā)到scrollEvent,是什么原因呢?
經(jīng)過仔細(xì)思考,猜想應(yīng)該是滾動(dòng)事件并不是在我 于是做了一個(gè)小試驗(yàn),定義一個(gè)固定高度的div 當(dāng)我在這個(gè)300px固定高度的div中滾動(dòng)的時(shí)候,果然觸發(fā)了scrollEvent,問題原因找到了,接下來就是解決了。 只要我能讓 但是固定高度怎么給呢,各個(gè)廠商的手機(jī)屏幕高度都是不一樣的,總不能讓某些手機(jī)顯示不完全,或者底部留空白吧。 當(dāng)然后辦法啦!就是吧html,body,.body-container{height:100%}這樣,我的.body-container就能繼承到document的高度了; 還有另一個(gè)辦法,讓.body-container使用fixed定位 因?yàn)樯舷伦笥业奈恢枚脊潭?,所以div自然也就有了固定高度,此方法適用于頁面有一個(gè)固定高度的頭部導(dǎo)航,我項(xiàng)目中有一個(gè)6rem高的頭部導(dǎo)航,所以我采用了fixed定位。 接下來就是驗(yàn)證是否滑到了底部 這樣就能比較清晰的判斷是否滾動(dòng)到了底部。但是如果僅僅這樣寫,當(dāng)滾動(dòng)到底部100px內(nèi)時(shí),會(huì)觸發(fā)很多次加載更多,所以我們需要增加一些判斷條件 以上就是怎么在vue中利用@scroll監(jiān)聽滾動(dòng)事件,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。.body-container{
position: fixed;
top:6rem;
left: 0;
right:0;
bottom: 0;
overflow: auto
}
export default {
name: 'demo',
data () {
return {
msg: '',
}
},
methods: {
scroll(e){
//滾動(dòng)的像素+容器的高度>可滾動(dòng)的總高度-100像素
if(e.srcElement.scrollTop+e.srcElement.offsetHeight>e.srcElement.scrollHeight-100){
this.loadMore(); //加載更多
}
},
}
}
methods: {
scroll(e){
// !this.moreLoading 沒有在加載狀態(tài),觸發(fā)加載更多時(shí),把this.moreLoading置未true
// !this.noMore 沒有更多的狀態(tài)為false,當(dāng)我們?nèi)〉降臄?shù)據(jù)長(zhǎng)度小于1頁的數(shù)量時(shí),就沒有更多了數(shù)據(jù)了,把 this.noMore置為true,這樣就不會(huì)觸發(fā)無意義的加載更多了
if(e.srcElement.scrollTop+e.srcElement.offsetHeight>e.srcElement.scrollHeight-100 && !this.moreLoading && !this.noMore){
this.loadMore();
}
},
}
文章題目:怎么在vue中利用@scroll監(jiān)聽滾動(dòng)事件-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://weahome.cn/article/dsepih.html