微信小程序 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 相关文章推荐
对YUI扩展的Gird组件 Part-2
Mar 10 Javascript
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 Javascript
Javascript中的包装类型介绍
Apr 02 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
javascript实现可键盘控制的抽奖系统
Mar 10 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
AngularJS实现ajax请求的方法
Nov 22 Javascript
js以及jquery实现手风琴效果
Apr 17 Javascript
javascript DOM的详解及实例代码
Mar 06 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
jQuery实现计算器功能
Oct 19 jQuery
微信小程序登录对接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
基于mysql的论坛(4)
2006/10/09 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
基于empty函数的输出详解
2013/06/17 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
JavaScript闭包详解
2015/02/02 Javascript
js电话号码验证方法
2015/09/28 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Python实现某论坛自动签到功能
2019/08/20 Python
在vscode中配置python环境过程解析
2019/09/28 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
学前教育毕业生自荐信范文
2013/12/24 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
2014年高三毕业生自我评价
2014/01/11 职场文书
联片教研活动总结
2014/07/01 职场文书
员工安全责任书范本
2014/07/24 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
我的生日感言
2015/08/03 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技