
小程序获取DOM属性(高、宽)
需在小程序Page对象中定义查询节点的方法; 使用 通过 使用 调用
发布日期:2021-05-14 20:20:51
浏览次数:16
分类:精选文章
本文共 1379 字,大约阅读时间需要 4 分钟。
如需查询某小程序节点,可借助wx.createSelectorQuery()
方法实现。以下将详细介绍该方法的使用方法及其在实际项目中的应用步骤。
1. 使用方法
需采用如下的方式调用该方法:
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; // 显示区域的竖直滚动位置 }); }});
上述代码片段说明了该方法的基本使用流程。具体来说:
wx.createSelectorQuery()
创建一个新的节点查询器对象;select
方法指定需要查询的具体节点,boundingClientRect()
用于获取该节点的定位信息;selectViewport().scrollOffset()
获取当前滚动区域的位置信息;exec
方法执行查询,通过回调函数处理返回数据。2. 项目应用
在实际项目开发中,节点查询通常与数据展示或动态交互相关。适用步骤如下:
创建查询器对象
在需要查询节点的页面中,首先创建一个节点查询器对象:const query = wx.createSelectorQuery();
指定节点并获取信息
通过select
方法指定目标节点,结合boundingClientRect()
获取该节点的文本坐标信息: query.select('#canvas_id').boundingClientRect();
执行查询并处理数据
调用exec
方法执行查询请求,并根据返回结果进行处理: query.exec((res) => { console.log(res, '节点信息'); // res[0]即目标节点的坐标信息});
示例应用场景
以下示例展示了在实际开发中如何结合节点查询与数据更新:
onLoad: function(options) { const query = wx.createSelectorQuery(); query.select('#canvas_id').boundingClientRect(); query.exec((res) => { this.setData({ canvas_w: res[0].width, canvas_h: res[0].height }); console.log('节点信息:', res); });}
注意事项
- 确保节点ID唯一且已在布局中定义;
- 选择合适的查询方式,避免多次重复查询,影响性能;
- 处理返回数据时,确保数据类型与实际应用相符。
通过以上方法,可以方便地查询并获取小程序中不同节点的详细信息,灵活实现多种交互场景。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月19日 22时02分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
BUU-MISC-caesar
2019-03-09
【专题2:电子工程师 之 上位机】 之 【36.事件重载】
2019-03-09
【专题3:电子工程师 之 上位机】 之 【46.QT音频接口】
2019-03-09
一文理解设计模式--命令模式(Command)
2019-03-09
VTK:可视化之RandomProbe
2019-03-09
block多队列分析 - 2. block多队列的初始化
2019-03-09
Java时间
2019-03-09
不编译只打包system或者vendor image命令
2019-03-09
The wxWindows Library Licence (WXwindows)
2019-03-09
leetcode——第203题——虚拟头结点
2019-03-09
【编程】C语言入门:1到 100 的所有整数中出现多少个数字9
2019-03-09
MySQL----基础及常用命令
2019-03-09
flink启动(二)
2019-03-09
软件架构设计和MESH经验之谈
2019-03-09
关于宝塔面板安装的mysql用Navicat连接出现2003的错误解决
2019-03-09
Windows2016 FTP用户隔离
2019-03-09
js传入参数是中文的时候出现 “******”未定义错误
2019-03-09
吴恩达机器学习课程笔记(英文授课) Lv.1 新手村(回归)
2019-03-09
pair的用法
2019-03-09
SQL基本操作命令
2019-03-09