舟山闪爸电子技术有限公司

微信小程序之動態(tài)獲取元素寬度高度

我以前一直以為微信小程序不能動態(tài)獲取view元素的寬高。但是自從看到: wx.createSelectorQuery() 這個api接口,以前的某些問題就能得到解決了。。。

那么,這個api接口怎么用呢?

首先,這個接口會返回一個對象實例。

var obj=wx.createSelectorQuery(); 

返回的 obj 有五個方法:

  1. obj.in(component):沒用過這個方法,多用于組件的選擇器。

  2. obj.select(selector):獲取指定的節(jié)點,selector是css選擇器。返回一個 NodesRef 對象實例,可以用于獲取節(jié)點信息。

  3. obj.selectAll(selector):獲取指定的節(jié)點,selector是css選擇器。返回一個 NodesRef 對象實例,可以用于獲取節(jié)點信息。

    微信小程序之動態(tài)獲取元素寬度高度

上面這兩個我感覺就是 js 中querySelector和querySelectorAll的區(qū)別。

  1. obj.selectViewport():我沒用過這個方法。官方說是選擇顯示區(qū)域,可用于獲取顯示區(qū)域的尺寸、滾動位置等信息。也是返回一個 NodesRef 對象實例,可以用于獲取節(jié)點信息。

  2. exec( function(res){} ):執(zhí)行所有的請求,請求結(jié)果按請求次序構(gòu)成數(shù)組,在callback的第一個參數(shù)中返回

上面返回的 NodesRef 對象實例就很重要了,它有三個方法:

  1. boundingClientRect( function(rect){} ):就是這個方法,能夠動態(tài)獲取view元素的高度、寬度等屬性。還有其它的請看官方文檔

  2. scrollOffset( function(res) {}):獲取節(jié)點的水平、垂直滾動的位置等。節(jié)點必須是scroll-view或者viewport

  3. fields(fields,function(){res} ):這個可以獲取指定元素的自定義屬性和class名,具體的請看官方文檔的說明。

廢話了這么多,真正的實例用法:

 

  1. wx.createSelectorQuery().selectAll('.npl-intro').boundingClientRect(function (rect) {
  2. console.log(rect[0].height)
  3. console.log(rect[0].width)
  4. }).exec()

如果覺得這樣寫有點長??梢苑植綄?。也是一樣的結(jié)果。

 

  1. var obj=wx.createSelectorQuery();
  2. obj.selectAll('.npl-intro').boundingClientRect(function (rect) {
  3. console.log(rect[0].height)
  4. console.log(rect[0].width)
  5. })
  6. obj.exec() ;

當(dāng)然,這方法可以寫在onLoad、onReady、onShow等這些生命周期的方法,也可以寫在自定義的方法里。什么時候需要,什么時候就調(diào)用。

 


【本站聲明】
  1、本站文章中所選用的圖片及文字來源于網(wǎng)絡(luò)以及用戶投稿,由于未聯(lián)系到知識產(chǎn)權(quán)人或未發(fā)現(xiàn)有關(guān)知識產(chǎn)權(quán)的登記,如有知識產(chǎn)權(quán)人并不愿意我們使用,如果有侵權(quán)請立即聯(lián)系。
  2、本網(wǎng)站不對文章中所涉及的內(nèi)容真實性、準(zhǔn)確性、可靠性負(fù)責(zé),僅系客觀性描述,如您需要了解該類商品/服務(wù)詳細(xì)的資訊,請您直接與該類商品/服務(wù)的提供者聯(lián)系。


KESION 科汛軟件

KESION 科汛軟件是國內(nèi)領(lǐng)先的在線教育軟件及私域社交電商軟件服務(wù)提供商,長期專注于為企業(yè)提供在線教育軟件及社交電商SaaS平臺解決方案。
公司核心產(chǎn)品云開店SaaS社交電商服務(wù)平臺、在線教育SaaS服務(wù)平臺、教育企業(yè)數(shù)字化SaaS云平臺、企微營銷助手、私有化獨立部署品牌網(wǎng)校和在線教育咨詢等。

KESION 不斷通過技術(shù)創(chuàng)新,提供產(chǎn)品和服務(wù),助力企業(yè)向數(shù)字化轉(zhuǎn)型,通過科技驅(qū)動商業(yè)革新,讓商業(yè)變得更智慧!



▼點擊進入科汛官網(wǎng)了解更多



熱門標(biāo)簽
微信小程序 SaaS
上/下篇
  • 小程序 Canvas繪圖不同尺寸設(shè)備UI兼容的兩個解決方案

  • 實現(xiàn)小程序canvas拖拽功能

換一換相關(guān)推薦
精選內(nèi)容
熱點精選