微信小程序 WXML節(jié)點(diǎn)信息查詢詳解
1、節(jié)點(diǎn)信息查詢
const query = wx.createSelectorQuery();//【返回節(jié)點(diǎn)查詢對象:SelectorQuery】 //組件內(nèi),則用this.createSelectorQuery();或者query .in(this);
節(jié)點(diǎn)查詢對象:SelectorQuery .in(this) //限定范圍為自身組件,返回【節(jié)點(diǎn)查詢對象】(所以可以和下面的方法,點(diǎn)連調(diào)用) .exec(function callback) //執(zhí)行查詢 //根據(jù)str選擇器查詢,或者查詢視窗?!痉祷毓?jié)點(diǎn)對象:NodesRef】 .select(selector) //根據(jù)選擇器str查詢,返回一個匹配 .selectAll(selector) //根據(jù)選擇器str查詢,返回所有匹配 .selectViewport()//選擇顯示區(qū)域
節(jié)點(diǎn)對象:NodesRef
//執(zhí)行底下請求后,返回SelectorQuery對象。
.fields({//這個是常規(guī)查詢,你想要查詢的信息,配置好,就可以查詢。底下還有細(xì)分的某一類查詢。
id:true,//這兩個以下細(xì)分節(jié)點(diǎn)查詢都會有這個返回
dataset:true,
rect:true,//這兩個包括id,dataset。相當(dāng)于boundingClientRect查詢
size:true,
scrollOffset:true,//這個包括,id,dataset。相當(dāng)于scrollOffset查詢
context:true,//這個包括id,dataset。相當(dāng)于context查詢
properties:[],//可以獲取除id,class,style,事件綁定之外的屬性
computedStyle:[],//可以獲取樣式
})
.boundingClientRect(function callback)//相對于顯示區(qū)域,以像素為單位
//返回節(jié)點(diǎn),相當(dāng)于視圖的(左上為原點(diǎn))四個邊的邊界像素。及寬高。及dataset
//相當(dāng)于:id:true, dataset:true,rect:true,size:true,
.scrollOffset(function callback)//添加節(jié)點(diǎn)的滾動位置查詢請求。以像素為單位。節(jié)點(diǎn)必須是 scroll-view 或者 viewport
//相當(dāng)于 id:true,dataset:true,
.context(function callback)//添加節(jié)點(diǎn)的 Context 對象查詢請求。
目前支持 VideoContext、CanvasContext、LivePlayerContext 和 MapContext 的獲取
總結(jié):
第一步,返回節(jié)點(diǎn)查詢對象:
const query = wx.createSelectorQuery();
第二步,查詢對象執(zhí)行查詢,返回節(jié)點(diǎn)對象:
query .in(this);//返回節(jié)點(diǎn)查詢對象【如果要限定組件范圍則需要】
select(selector)/selectAll(selector)/selectViewport() .
第三步,節(jié)點(diǎn)對象配置需要的節(jié)點(diǎn)信息,返回查詢對象:
fields()/boundingClientRect()/scrollOffset()/context()
第四步,查詢對象執(zhí)行查詢:
exec(function callback)
說明:function callback,可以放在exec。也可以放在boundingClientRect()/scrollOffset()/context()
但如果像fields().。只能放在exec
2、節(jié)點(diǎn)相交狀態(tài)查詢
wx.createIntersectionObserver();//組件用:wx.createIntersectionObserver(this); //返回節(jié)點(diǎn)觀察到對象
選擇參照區(qū)域 .relativeTo(selector,[margins])//選擇某個節(jié)點(diǎn)區(qū)域作為參照物 或 relativeToViewport([margins])//選擇視圖置為參照物 其中:margins:用來擴(kuò)展(或收縮)參照節(jié)點(diǎn)布局區(qū)域的邊界
其中:margins:用來擴(kuò)展(或收縮)參照節(jié)點(diǎn)布局區(qū)域的邊界
選擇觀察者,并且開始監(jiān)聽 .observe(string targetSelector, function callback)
停止監(jiān)聽: .disconnect()
總結(jié):
可以實(shí)現(xiàn)吸附等功能
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
學(xué)習(xí)JSON.stringify的9大特性和轉(zhuǎn)換規(guī)則
本文介紹JSON.stringify9大特性和轉(zhuǎn)換規(guī)則,JSON.stringify()方法將一個JavaScript對象或值轉(zhuǎn)換為?JSON?字符串,如果指定了一個replacer?函數(shù),則可以選擇性地替換值,或者指定的replacer是數(shù)組,則可選擇性地僅包含數(shù)組指定的屬性,更多內(nèi)容需要的小火煸可以參考下面溫行內(nèi)容2022-02-02
微信公眾號錄音文件的播放與保存(amr文件轉(zhuǎn)mp3)
本文主要介紹了微信公眾號錄音文件的播放與保存(amr文件轉(zhuǎn)mp3),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
JavaScript 中文轉(zhuǎn)拼音實(shí)現(xiàn)代碼 有些bug
在做項(xiàng)目時候遇到一個小小的顯示客戶部門名稱(拼音)的業(yè)務(wù),就是在部門名稱下有相應(yīng)的拼音,而在現(xiàn)有的數(shù)據(jù)庫中沒有相應(yīng)字段,并且部門數(shù)量比較多,添加起來比較費(fèi)時,就想能否在js中實(shí)現(xiàn),在頁面中處理。2010-03-03
JavaScript模擬文件拖選框樣式v1.0的實(shí)例
下面小編就為大家?guī)硪黄狫avaScript模擬文件拖選框樣式v1.0的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

