微信小程序中若是判斷頁面滾動方向?php
1.用到微信小程序APIhtml
獲取頁面實際高度 nodesRef.boundingClientRect([callback])
監聽用戶滑動頁面事件 onPageScroll。
2.獲取頁面實際高度node
<!--WXML--> <view id="box"> <view class="list" wx:for="{{List}}" wx:key="List{{index}}"> <image mode='aspectFill' class='list_img' src="{{item.imgUrl}}" ></image> </view> </view>
/* JS */ // 封裝函數獲取ID爲box的元素實際高度 getScrollHeight: function() { wx.createSelectorQuery().select('#box').boundingClientRect((rect) => { this.setData({ scrollHeight: rect.height }) console.log(this.data.scrollHeight) }).exec() }, // 假設數據請求 getDataList: function() { wx.request({ url: 'test.php', //僅爲示例,並不是真實的接口地址 success: function(res) { // 若是該元素下面的數據是動態獲取的,此方法在wx.request請求成功的回調函數中調用 this.getScrollHeight() } }) },
3.監聽用戶滑動頁面事件小程序
//監聽用戶滑動頁面事件 onPageScroll: function(e) { if (e.scrollTop <= 0) { // 滾動到最頂部 e.scrollTop = 0; } else if (e.scrollTop > this.data.scrollHeight) { // 滾動到最底部 e.scrollTop = this.data.scrollHeight; } if (e.scrollTop > this.data.scrollTop || e.scrollTop >= this.data.scrollHeight) { //向下滾動 console.log('向下 ', this.data.scrollHeight) } else { //向上滾動 console.log('向上滾動 ', this.data.scrollHeight) } //給scrollTop從新賦值 this.data.scrollTop=e.scrollTop },
參考:微信小程序如何判斷頁面上下滾動微信小程序