NodesRef 用于获取 WXML 节点信息的对象
let query = wx.createSelectorQuery()
复制代码
SelectorQuery.in (对应的组件)
SelectorQuery.select(string selector)
SelectorQuery.selectAll()
SelectorQuery.selectViewport()
SelectorQuery.exec(function callback)
第一步、 创建SelectorQuery查询对象
let query = wx.createSelectorQuery()
复制代码
第二步、 获取节点对象
方法一:query.select(queryString) 选择第一个匹配节点
方法二:query.selectAll(queryString) 选择所有匹配节点
let queryString = '.blue-product>>>.product-list'
let queryNode = query.selectAll(queryString)
复制代码
第三步、调用节点对象方法
queryNode.fields({
id:false,//是否返回节点id
rect:fasle,//是否返回节点布局位置
dataset: true,//返回数据集
size: true,//返回宽高
scrollOffset: true,//返回 scrollLeft,scrollTop
properties: ['scrollX', 'scrollY'],//监听属性名
computedStyle: ['margin', 'backgroundColor']//此处返回指定要返回的样式名
}, function(res) {
console.log(res)
})
// 返回结果
[{
dataset:{},
width:247,
height:1065,
scrollLeft:0,
scrollTop:0,
margin:"0px 0px 10px",
backgroundColor:"rgba(0, 0, 0, 0)",
},{
dataset:{},
width:247,
height:1065,
scrollLeft:0,
scrollTop:0,
margin:"0px 0px 10px",
backgroundColor:"rgba(0, 0, 0, 0)",
},{
dataset:{},
width:247,
height:1065,
scrollLeft:0,
scrollTop:0,
margin:"0px 0px 10px",
backgroundColor:"rgba(0, 0, 0, 0)",
}]
复制代码
复制代码
query.selectAll(queryClass).boundingClientRect(function(rect){
rect.id // 节点的ID
rect.dataset // 节点的dataset
rect.left // 节点的左边界坐标
rect.right // 节点的右边界坐标
rect.top // 节点的上边界坐标
rect.bottom // 节点的下边界坐标
rect.width // 节点的宽度
rect.height // 节点的高度
})
复制代码
wx.createSelectorQuery().selectViewport().scrollOffset(function(res){
res.id // 节点的ID
res.dataset // 节点的dataset
res.scrollLeft // 节点的水平滚动位置
res.scrollTop // 节点的竖直滚动位置
})
复制代码
第四步:可一返回所有的节点信息
query.exec(function(res) {
console.log(res)
})
作者:startstudysmile
链接:https://juejin.im/post/5be7df8ff265da61590b3169
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。