微信小程序 WXML节点信息查询详解


Posted in Javascript onJuly 29, 2019

1、节点信息查询

const query = wx.createSelectorQuery();//【返回节点查询对象:SelectorQuery】
//组件内,则用this.createSelectorQuery();或者query .in(this);
节点查询对象:SelectorQuery
.in(this) //限定范围为自身组件,返回【节点查询对象】(所以可以和下面的方法,点连调用)
.exec(function callback) //执行查询

//根据str选择器查询,或者查询视窗。【返回节点对象:NodesRef】
.select(selector) //根据选择器str查询,返回一个匹配
.selectAll(selector) //根据选择器str查询,返回所有匹配
.selectViewport()//选择显示区域
节点对象:NodesRef
//执行底下请求后,返回SelectorQuery对象。
.fields({//这个是常规查询,你想要查询的信息,配置好,就可以查询。底下还有细分的某一类查询。
 id:true,//这两个以下细分节点查询都会有这个返回
 dataset:true,

 rect:true,//这两个包括id,dataset。相当于boundingClientRect查询
 size:true,

 scrollOffset:true,//这个包括,id,dataset。相当于scrollOffset查询

 context:true,//这个包括id,dataset。相当于context查询
 
 properties:[],//可以获取除id,class,style,事件绑定之外的属性
 computedStyle:[],//可以获取样式
})

.boundingClientRect(function callback)//相对于显示区域,以像素为单位
//返回节点,相当于视图的(左上为原点)四个边的边界像素。及宽高。及dataset
//相当于:id:true, dataset:true,rect:true,size:true,


.scrollOffset(function callback)//添加节点的滚动位置查询请求。以像素为单位。节点必须是 scroll-view 或者 viewport
//相当于 id:true,dataset:true,

.context(function callback)//添加节点的 Context 对象查询请求。
目前支持 VideoContext、CanvasContext、LivePlayerContext 和 MapContext 的获取

总结:

第一步,返回节点查询对象:

const query = wx.createSelectorQuery();

第二步,查询对象执行查询,返回节点对象:

query .in(this);//返回节点查询对象【如果要限定组件范围则需要】

select(selector)/selectAll(selector)/selectViewport()     .

第三步,节点对象配置需要的节点信息,返回查询对象:

fields()/boundingClientRect()/scrollOffset()/context()

第四步,查询对象执行查询:

exec(function callback)

说明:function callback,可以放在exec。也可以放在boundingClientRect()/scrollOffset()/context()

但如果像fields().。只能放在exec

2、节点相交状态查询

wx.createIntersectionObserver();//组件用:wx.createIntersectionObserver(this);
//返回节点观察到对象
选择参照区域
.relativeTo(selector,[margins])//选择某个节点区域作为参照物
或
relativeToViewport([margins])//选择视图置为参照物

其中:margins:用来扩展(或收缩)参照节点布局区域的边界

其中:margins:用来扩展(或收缩)参照节点布局区域的边界

选择观察者,并且开始监听
.observe(string targetSelector, function callback)
停止监听:
.disconnect()

总结:

可以实现吸附等功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
浅析jQuery1.8的几个小变化
Dec 10 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
Mar 05 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
jQuery语法小结(超实用)
Dec 31 Javascript
javascript制作照片墙及制作过程中出现的问题
Apr 04 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
在Vue项目中引入腾讯验证码服务的教程
Apr 03 Javascript
详解Vue源码学习之双向绑定
Apr 10 Javascript
layui实现左侧菜单点击右侧内容区显示
Jul 26 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 #Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 #Javascript
vue.js 2.0实现简单分页效果
Jul 29 #Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 #Javascript
教你搭建按需加载的Vue组件库(小结)
Jul 29 #Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 #Javascript
Vue2.0实现简单分页及跳转效果
Jul 29 #Javascript
You might like
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
selenium+python实现自动登录脚本
2018/04/22 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
浅谈Python 函数式编程
2020/06/20 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
老公给老婆的道歉信
2014/01/10 职场文书
愚人节活动策划方案
2014/03/11 职场文书
自主招生专家推荐信
2015/03/26 职场文书
结婚仪式主持词
2015/06/29 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
Ajax实现三级联动效果
2021/10/05 Javascript