以下是一个基本的示例,演示如何使用 createSelectorQuery 获取界面上某个节点的信息:
<!-- page.wxml -->
<view id="target">这是一个目标节点</view>
<button bindtap="getTargetInfo">获取节点信息</button>
// page.js
Page({
getTargetInfo: function() {
// 使用 createSelectorQuery 创建查询对象
const query = wx.createSelectorQuery();
// 在查询对象上执行选择器,获取目标节点的信息
query.select('#target').boundingClientRect(function(rect) {
if (rect) {
console.log('目标节点信息:', rect);
console.log('目标节点的宽度:', rect.width);
console.log('目标节点的高度:', rect.height);
console.log('目标节点的位置:', rect.top, rect.right, rect.bottom, rect.left);
} else {
console.error('未找到目标节点');
}
}).exec();
}
});
在上述代码中:
- createSelectorQuery 用于创建查询对象。
- query.select('#target').boundingClientRect 用于选择目标节点并获取其位置和尺寸信息。
- exec 方法用于执行查询。
请注意,在实际开发中,可能需要使用异步的方式获取节点信息,因此可以将 boundingClientRect 放在 exec 的回调函数中,或者使用 Promise 来处理。
// 使用 Promise 的方式获取节点信息
function getTargetInfo() {
return new Promise((resolve, reject) => {
const query = wx.createSelectorQuery();
query.select('#target').boundingClientRect(function(rect) {
if (rect) {
resolve(rect);
} else {
reject(new Error('未找到目标节点'));
}
}).exec();
});
}
// 调用方式
getTargetInfo()
.then(rect => {
console.log('目标节点信息:', rect);
})
.catch(error => {
console.error(error.message);
});
这是一个简单的示例,你可以根据实际需求使用不同的选择器和处理逻辑。详细的文档可以在[微信小程序官方文档](https://developers.weixin.qq.com/miniprogram/dev/api/wxml-nodes-info.html)中查阅。
转载请注明出处:http://www.zyzy.cn/article/detail/615/微信小程序