溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序如何獲取節點

發布時間:2022-03-15 11:09:41 來源:億速云 閱讀:2725 作者:小新 欄目:開發技術

小編給大家分享一下微信小程序如何獲取節點,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

wx.createSelectorQuery()


基礎庫 1.4.0 開始支持,低版本需做兼容處理


返回一個SelectorQuery對象實例??梢栽谶@個實例上使用select等方法選擇節點,并使用boundingClientRect等方法選擇需要查詢的信息。

示例代碼:

Page({
  queryMultipleNodes: function(){var query = wx.createSelectorQuery()
    query.select('#the-id').boundingClientRect()
    query.selectViewport().scrollOffset()
    query.exec(function(res){
      res[0].top       // #the-id節點的上邊界坐標  res[1].scrollTop // 顯示區域的豎直滾動位置})
  }
})

selectorQuery

selectorQuery 對象的方法列表:

方法 參數 說明
select selector 參考下面詳細介紹
selectAll selector 參考下面詳細介紹
selectViewport   參考下面詳細介紹
exec [callback] 參考下面詳細介紹

selectorQuery.select(selector)


在當前頁面下選擇第一個匹配選擇器selector的節點,返回一個NodesRef對象實例,可以用于獲取節點信息。

selector類似于CSS的選擇器,但僅支持下列語法。

  • ID選擇器:#the-id

  • class選擇器(可以連續指定多個):.a-class.another-class

  • 子元素選擇器:.the-parent > #the-child.a-class

  • 多選擇器的并集:#a-node, .some-other-nodes

selectorQuery.selectAll(selector)


在當前頁面下選擇匹配選擇器selector的節點,返回一個NodesRef對象實例。 與selectorQuery.selectNode(selector)不同的是,它選擇所有匹配選擇器的節點。

selectorQuery.selectViewport()


選擇顯示區域,可用于獲取顯示區域的尺寸、滾動位置等信息,返回一個NodesRef對象實例。

nodesRef.boundingClientRect([callback])


添加節點的布局位置的查詢請求,相對于顯示區域,以像素為單位。其功能類似于DOM的getBoundingClientRect。返回值是nodesRef對應的selectorQuery。

返回的節點信息中,每個節點的位置用left、right、top、bottom、width、height字段描述。如果提供了callback回調函數,在執行selectQuery的exec方法后,節點信息會在callback中返回。

示例代碼:

Page({
  getRect: function(){
    wx.createSelectorQuery().select('#the-id').boundingClientRect(function(rect){
      rect.id      // 節點的ID  rect.dataset // 節點的dataset  rect.left    // 節點的左邊界坐標  rect.right   // 節點的右邊界坐標  rect.top     // 節點的上邊界坐標  rect.bottom  // 節點的下邊界坐標  rect.width   // 節點的寬度  rect.height  // 節點的高度}).exec()
  },
  getAllRects: function(){
    wx.createSelectorQuery().selectAll('.a-class').boundingClientRect(function(rects){
      rects.forEach(function(rect){
        rect.id      // 節點的IDrect.dataset // 節點的datasetrect.left    // 節點的左邊界坐標rect.right   // 節點的右邊界坐標rect.top     // 節點的上邊界坐標rect.bottom  // 節點的下邊界坐標rect.width   // 節點的寬度rect.height  // 節點的高度  })
    }).exec()
  }
})

nodesRef.scrollOffset([callback])


添加節點的滾動位置查詢請求,以像素為單位。節點必須是scroll-view或者viewport。返回值是nodesRef對應的selectorQuery。

返回的節點信息中,每個節點的滾動位置用scrollLeft、scrollHeight字段描述。如果提供了callback回調函數,在執行selectQuery的exec方法后,節點信息會在callback中返回。

示例代碼:

Page({
  getScrollOffset: function(){
    wx.createSelectorQuery().selectViewport().scrollOffset(function(res){
      res.id      // 節點的ID  res.dataset // 節點的dataset  res.scrollLeft // 節點的水平滾動位置  res.scrollTop  // 節點的豎直滾動位置}).exec()
  }
})

nodesRef.fields(fields, [callback])


獲取節點的相關信息,需要獲取的字段在fields中指定。返回值是nodesRef對應的selectorQuery??芍付ǐ@取的字段包括:

字段名 默認值 說明
id 是否返回節點id
dataset 是否返回節點dataset
rect 是否返回節點布局位置(left right top bottom
size 是否返回節點尺寸(width height
scrollOffset 是否返回節點的 scrollLeft scrollTop ,節點必須是scroll-view或者viewport
properties[] 指定屬性名列表,返回節點對應屬性名的當前屬性值(只能獲得組件文檔中標注的常規屬性值, id class style 和事件綁定的屬性值不可獲?。?/td>

示例代碼:

Page({
  getFields: function(){
    wx.createSelectorQuery().select('#the-id').fields({
      dataset: true,
      size: true,
      scrollOffset: true,
      properties: ['scrollX', 'scrollY']
    }, function(res){
      res.dataset    // 節點的dataset  res.width      // 節點的寬度  res.height     // 節點的高度  res.scrollLeft // 節點的水平滾動位置  res.scrollTop  // 節點的豎直滾動位置  res.scrollX    // 節點 scroll-x 屬性的當前值  res.scrollY    // 節點 scroll-x 屬性的當前值}).exec()
  }
})

selectorQuery.exec([callback])


執行所有的請求,請求結果按請求次序構成數組,在callback的第一個參數中返回。

以上是“微信小程序如何獲取節點”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女