您好,登錄后才能下訂單哦!
思路: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事件的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。