微信小程序之判斷頁(yè)面滾動(dòng)方向的示例代碼
微信小程序中如果判斷頁(yè)面滾動(dòng)方向?
解決方案
1.用到微信小程序API
獲取頁(yè)面實(shí)際高度 nodesRef.boundingClientRect([callback])
監(jiān)聽用戶滑動(dòng)頁(yè)面事件onPageScroll。
2.獲取頁(yè)面實(shí)際高度
<!--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 */ // 封裝函數(shù)獲取ID為box的元素實(shí)際高度 getScrollHeight: function() { wx.createSelectorQuery().select('#box').boundingClientRect((rect) => { this.setData({ scrollHeight: rect.height }) console.log(this.data.scrollHeight) }).exec() }, // 假設(shè)數(shù)據(jù)請(qǐng)求 getDataList: function() { wx.request({ url: 'test.php', //僅為示例,并非真實(shí)的接口地址 success: function(res) { // 如果該元素下面的數(shù)據(jù)是動(dòng)態(tài)獲取的,此方法在wx.request請(qǐng)求成功的回調(diào)函數(shù)中調(diào)用 this.getScrollHeight() } }) },
3.監(jiān)聽用戶滑動(dòng)頁(yè)面事件
//監(jiān)聽用戶滑動(dòng)頁(yè)面事件 onPageScroll: function(e) { if (e.scrollTop <= 0) { // 滾動(dòng)到最頂部 e.scrollTop = 0; } else if (e.scrollTop > this.data.scrollHeight) { // 滾動(dòng)到最底部 e.scrollTop = this.data.scrollHeight; } if (e.scrollTop > this.data.scrollTop || e.scrollTop >= this.data.scrollHeight) { //向下滾動(dòng) console.log('向下 ', this.data.scrollHeight) } else { //向上滾動(dòng) console.log('向上滾動(dòng) ', this.data.scrollHeight) } //給scrollTop重新賦值 this.setData({ scrollTop: e.scrollTop }) },
PS:微信小程序滾動(dòng)到某個(gè)位置改變效果
<scroll-view> <view>Some of the words<view> <view bindscroll="scroll" class="{{variable>200 ? 'class1' : 'class2'}}"</view> </scroll-view>
//JS文件 //滾動(dòng)監(jiān)聽 scroll: function (e) { this.setData({ scrollTop:e.detail.scrollTop }) }
其中,variable為全局變量,class1、class2即為相應(yīng)的css
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)可編輯的后臺(tái)管理菜單功能【附demo源碼下載】
這篇文章主要介紹了JS實(shí)現(xiàn)可編輯的后臺(tái)管理菜單功能,涉及javascript針對(duì)頁(yè)面元素的遍歷及動(dòng)態(tài)修改相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09BootstrapTable請(qǐng)求數(shù)據(jù)時(shí)設(shè)置超時(shí)(timeout)的方法
使用bootstrapTable獲取數(shù)據(jù)時(shí),有時(shí)由于網(wǎng)絡(luò)或者服務(wù)器的原因,無(wú)法及時(shí)獲取到數(shù)據(jù),頁(yè)面顯示一直處于等待狀態(tài)。為了改善效果,考慮設(shè)置超時(shí),請(qǐng)求發(fā)送后超時(shí)即顯示無(wú)數(shù)據(jù),過段時(shí)間重新發(fā)起請(qǐng)求2017-01-01教你如何使用firebug調(diào)試功能了解javascript閉包和this
這篇文章主要介紹了教你如何使用firebug調(diào)試功能了解javascript閉包和this,javascript的調(diào)試也是一個(gè)比較大的難點(diǎn),很多基礎(chǔ)的東西都需要自己去摸索,這里將自己的經(jīng)驗(yàn)分享給大家,希望對(duì)大家能夠有所幫助2015-03-03微信小程序把百度地圖坐標(biāo)轉(zhuǎn)換成騰訊地圖坐標(biāo)過程詳解
這篇文章主要介紹了微信小程序把百度地圖坐標(biāo)轉(zhuǎn)騰訊地圖坐標(biāo)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07javascript html5輕松實(shí)現(xiàn)拖動(dòng)功能
這篇文章主要為大家詳細(xì)介紹了javascript html5輕松實(shí)現(xiàn)拖動(dòng)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03