思路:scroll在哪兒個組件內,就在獲取那個dom元素。網上好多思路是
window.addEventListener("scroll", function(){  console.log('scrolling');  });這是監聽不到的!如果你整個網頁可以滑動,或許還可以試試!
對于像我這樣,只在頁面的內的一個div內要監聽的。
實現代碼如下:
第一步:滑動的組件外層的div加 ref="viewBox" 為了通過$refs獲取dom元素
<!--設備列表--><div class="deviceWrapper" ref="viewBox"> <mu-refresh-control :refreshing="refreshing" :trigger="trigger" @refresh="refresh"/> <div class="demo-grid"> <!--設備列表 手機一行兩列 pad一行4列--> <mu-row>  <mu-col v-for="device in devicesList" width="50" tablet="25" desktop="25">  <deviceCardView :device-data="device""></devicelightCardView>  </mu-col> </mu-row> </div> <p class="bottomLine" v-bind:class="{bottomLineVisible:isScroll}">---------------------我是有底線的---------------------</p></div>第二步:
mounted() {// 通過$refs獲取dom元素 this.box = this.$refs.viewBox // 監聽這個dom的scroll事件 this.box.addEventListener('scroll', () => { console.log(" scroll " + this.$refs.viewBox.scrollTop) //以下是我自己的需求,向下滾動的時候顯示“我是有底線的(類似支付寶)” this.isScroll=this.$refs.viewBox.scrollTop>0 }, false)}ps:具體怎么做,看需求了。只要能打印出來.scrollTop就行了
以上這篇使用vue.js在頁面內組件監聽scroll事件的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答
圖片精選