国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序(四) 節(jié)點查詢 | wx.createSelectorQuery

這篇具有很好參考價值的文章主要介紹了微信小程序(四) 節(jié)點查詢 | wx.createSelectorQuery。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

先看官方文檔給出的說明

查 詢 節(jié) 點 信 息 的 對 象 , 返 回 一 個 S e l e c t o r Q u e r y 對 象 實 例 \color{#9a2323}{查詢節(jié)點信息的對象,返回一個 SelectorQuery 對象實例} 節(jié),SelectorQuery

拿到實例后再看上邊掛載的方法

  • SelectorQuery.in (設置選取范圍)
  • SelectorQuery.select (選擇節(jié)點 | 頁面中匹配到的第一個)
  • SelectorQuery.selectAll (選擇當前頁面下匹配選擇器的所有節(jié)點)
  • SelectorQuery.selectViewport (獲取顯示區(qū)域的尺寸、滾動位置等信息)
  • SelectorQuery.exec (執(zhí)行所有的請求,請求結果按請求次序構成數(shù)組)

多看文檔在微信這里好像不太行的樣子
所以還是直接建個demo吧,以一個盒子滑動到頂部吸頂為需求。
實現(xiàn)步驟為通過 wx.createSelectorQuery 獲取元素在頁面中的高度,頁面滑動的時候通過微信提供的 onPageScroll 方法,獲取當前頁面的滾動高度。到達閾值后 setData

index.wxml
<view id="fixed-content" class="fixed-box {{ isFixed ? 'stick' : '' }}">
  <text>{{ isFixed ? '吸頂啦' : '元素滑動至tab欄時吸頂' }}</text>
</view>
index.js
page({
	onLoad () {
		this.queryFixedElementInfo();
	},
	
  	// 查詢吸頂元素高度
	queryFixedElementInfo () {
	  // 獲取一個 'SelectorQuery' 實例
	  const query = wx.createSelectorQuery();
	
	  // 選擇 id 為 'fixed-content' 的頁面元素,查詢其布局位置
	  query.select('#fixed-content').boundingClientRect();
	
	  // empty-element 選擇的是一個頁面并不存在的節(jié)點,同樣發(fā)起一個查詢,寫在這里只是想提醒下看代碼片段的各位,對于不能確定的數(shù)據(jù),在取值的時候盡量給個默認值,或者判斷數(shù)據(jù)類型后再進行對應的操作,以免操作不當報錯,影響后續(xù)的邏輯
	  // 實際應用場景可能為,使用 wx:if 控制的元素,在查詢時未渲染
	  query.select('#empty-element').boundingClientRect();
	
	  // 官方注解: '執(zhí)行所有的請求 ***請求結果按請求次序構成數(shù)組*** 在callback的第一個參數(shù)中返回。'
	  query.exec(res => {
	    const [ fixedElement, emptyElement ] = res;
	    
	    // 第一項為查詢頁面節(jié)點 '#fixed-content' 的返回值,
	    const { bottom, dataset, height, left, right, top, width } = fixedElement || {};
	    // 查詢對象中元素自身的寬高
	    console.log(`%c 查詢元素的寬高:${width} * ${height}`, 'color: #282C34');
	    /**
	     * top 為距頂部距離, bottom為元素底部距頂部的距離
	     * 這塊可以自己調整元素在界面中的位置
	     * bottom - top === height;
	     * console.log(bottom - top === height); // true
	     */
	    console.log(`%c 查詢元素相對視圖的邊界坐標\n上:${top}\n下:${bottom}\n左:${left}\n右:${right}`, 'color: #a52222');
	    // 查詢元素中攜帶的自定義屬性
	    console.dir(dataset);
	
	    // 因為第二條并不存在于頁面中,所以也沒有返回值,從里邊取值的時候記得給個默認值
	    const { id } = emptyElement || {};
	    console.log(`%c 以解構方式取到的值為:${id}, 但是不會報錯,需要的話可以在解構的時候賦個默認值`, 'color: red');
	    /** 以下寫法會報錯,影響后續(xù)的業(yè)務邏輯  */
	    // console.log(res[1].id || emptyElement.id);
	
	    // do sth...
	    // 記錄 '#fixed-content' 距離頂部的距離
	    this.setData({ fixedTop: top });
	  });
	},

	// 頁面滑動事件
	onPageScroll (e) {
	  const { scrollTop } = e;
	  const { fixedTop, isFixed } = this.data;
	  if (scrollTop >= fixedTop && !isFixed) {
	    this.setData({ isFixed: true });
	    return;
	  }
	  if (scrollTop < fixedTop && isFixed) {
	    this.setData({ isFixed: false });
	    return;
	  }
	},
}

.select & .selectAll

傳入一個選擇器,選擇器格式參考文檔
selector類似于 CSS 的選擇器,但僅支持下列語法。
· ID選擇器:#the-id
· class選擇器(可以連續(xù)指定多個):.a-class.another-class
· 子元素選擇器:.the-parent > .the-child
· 后代選擇器:.the-ancestor .the-descendant
· 跨自定義組件的后代選擇器:.the-ancestor >>> .the-descendant
· 多選擇器的并集:#a-node, .some-other-nodes

.selectViewport

返回一個獲取wxml節(jié)點信息的對象,包含的方法官方文檔有列出
微信官方文檔 | NodesRef

.exec

可以看到使用 exec 時如文檔所說將所有的請求執(zhí)行,然后返回結果是一個數(shù)組,順序為發(fā)起請求的順序。
有些條件下可能會出現(xiàn)查詢元素并不在界面上的情況,所以對應的返回值為 null,如果這時直接以對象的方式去取值,則會報錯,影響后續(xù)代碼的執(zhí)行。所以在使用時請記得考慮為空的情況

————————手動的分割線—————————————————————————

Last

其實開始是想把 wx.createSelectorQuerywx.createIntersectionObserver 放在一起,弄個代碼片段貼上來就好,不做細分了,但是想了下對初接觸的可能不太友好,所以在blog里拆開。這里再掛上揉在一起的小程序代碼片段吧,可以對比或者調試,這樣可能更方便去理解這個東西

微信開發(fā)者工具 | 代碼片段地址文章來源地址http://www.zghlxwxcb.cn/news/detail-502594.html

到了這里,關于微信小程序(四) 節(jié)點查詢 | wx.createSelectorQuery的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 微信小程序 wx:if使用

    在微信小程序中,可以使用 wx:if 指令來控制某個元素是否需要被渲染到頁面上。根據(jù)條件表達式的結果, wx:if 指令決定元素是否顯示。 下面是使用 wx:if 的基本示例: 在上述代碼中, wx:if 指令的值為一個條件表達式 {{condition}} ,根據(jù)該條件表達式的結果決定是否渲染 view 元

    2024年02月09日
    瀏覽(25)
  • 微信小程序-登錄(wx.login)

    微信小程序-登錄(wx.login)

    用戶微信登錄小程序有兩種情況,分別為彈出登錄提示和不彈出登錄提示兩種。彈出登錄提示的情況下,用戶確定后會向后臺傳入更多參數(shù),例如用戶昵稱等。不彈出登錄提示只能獲取到用戶的臨時登錄憑證code。主要根據(jù)第二種情況進行描述。 這個code具有時效性,能用于區(qū)

    2024年02月15日
    瀏覽(16)
  • 微信小程序本地存儲(wx.setStorage)和(wx.setStorageSync)

    ?在微信小程序中,可以使用本地存儲來保存一些數(shù)據(jù)比如用戶狀態(tài),姓名,性別等; 本地存儲主要包括兩種方式:緩存和本地數(shù)據(jù)存儲。 緩存 緩存是一種快速訪問內(nèi)存的臨時存儲機制,可以有效地提高應用程序的響應速度。在微信小程序中,可以使用 wx.setStorage 方法和

    2023年04月18日
    瀏覽(30)
  • 微信小程序如何實現(xiàn)兼容----wx.getSystemInfoSync、 wx.getSystemInfo、wx.canIUse

    小程序的宿主環(huán)境一直在迭代更新,提供更多的能力給開發(fā)者去完成更多的事情,所以你的小程序會運行在不同版本的宿主環(huán)境下。為了讓你的小程序在不同環(huán)境下都能提供相應的服務,我們需要來了解一下在小程序中如何實現(xiàn)兼容辦法。 1.針對不同手機進行程序上的兼容

    2024年02月09日
    瀏覽(20)
  • 微信小程序wx:for 的使用以及wx:key綁定

    wx:for基本使用 wx:for-item和wx:for-index重新命名item和index wx:key兩種綁定方式以及注意事項 wx:for基本使用 業(yè)務層數(shù)據(jù) 視圖層 wx:for遍歷時候每一項名稱為 item 每一項索引名稱為 index wx:for-item和wx:for-index實現(xiàn)item和index重命名 wx:for-item=\\\"str\\\" 將原來名稱 item 修改成 str wx:for-index=\\\"i 將原來

    2024年02月11日
    瀏覽(14)
  • 微信小程序 wx.request 請求封裝

    1、添加一些統(tǒng)一的參數(shù)或者配置 2、加上默認的請求頭和cookie(有就加,沒有就為空) 3、將參數(shù),即傳入的url地址、請求頭傳入請求中 4、封裝 post 和 get 請求,使代碼使用更加方便,以維護

    2024年02月16日
    瀏覽(22)
  • 微信小程序wx.getUserProfile的用法

    微信小程序wx.getUserProfile的用法

    接觸了以前開發(fā)的一個微信小程序,發(fā)現(xiàn)wx.getUserInfo這個官方接口不能獲取用戶的信息,我重新創(chuàng)建了一個新的項目,發(fā)現(xiàn)可以用wx.getUserProfile這個官方接口來獲取用戶信息,具體操作如下:1.首先在xxxx.jslim里面定義初始值,isAuthorization是為了解決每次登陸都需要獲取用戶信息

    2024年02月14日
    瀏覽(21)
  • 微信小程序wx.setClipboardData復制文本

    今天在開發(fā)中遇到一個問題,在小程序中 復制文本,在做之前也查了資料,大部分都是固定文本復制,(小程序本身是不能手動復制的)和需求還是不一樣的。 對于復制官方文檔中提供了: wx.setClipboardData 設置系統(tǒng)剪貼板的內(nèi)容。調用成功后,會彈出 toast 提示\\\"內(nèi)容已復制

    2024年02月09日
    瀏覽(18)
  • 【微信小程序】列表渲染wx:for

    【微信小程序】列表渲染wx:for

    ??今日學習目標:第十二期——列表渲染wx:for ??創(chuàng)作者:顏顏yan_ ?個人主頁:顏顏yan_的個人主頁 ?預計時間:20分鐘 ??專欄系列:我的第一個微信小程序 哈嘍大家好,本期是微信小程序專欄第十二期,本期我們將學習列表渲染wx:for。 注意:每期內(nèi)容是連載呢,建議大家

    2024年02月08日
    瀏覽(18)
  • 微信小程序封裝wx.request請求

    微信小程序封裝wx.request請求

    對微信小程序的印象我還停留在2年前剛入行的時候,那是還不懂什么是Promise,只知道小程序發(fā)請求有時候要在success回調中嵌套好多層(后來我才知道這叫 回調地獄 )。最近剛好有個小程序的項目交給我發(fā)開發(fā),加上如今的我自認為對Promise掌握的還可以,所以這次也嘗試著封

    2024年02月16日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包