VPS参考测评推荐
专注分享VPS主机优惠信息
hostkvm优惠促销活动
zji优惠促销活动
衡天云优惠活动
亚马逊云aws.amazon.com最新优惠活动
华纳云最新优惠促销活动

利用applet的api接口动态获取元素的宽度和高度

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

利用applet的api接口动态获取元素的宽度和高度

wx . createselectquery()API接口允许微信小程序动态获取视图元素的宽度和高度。

api的使用:

首先,这个接口将返回一个对象实例。

var obj = wx . createselectquery();

以下是返回的对象实例obj的所有内容。

ea3424e12dc213e24265610b8c6839b.png

有五种方法可以返回的obj:

1.obj.in(component):这个方法以前从来没有用过,但是多用于组件的选择器。

2.obj.select(选择器):获取指定的节点。选择器是一个css选择器。返回NodesRef对象的实例,该对象可用于获取节点信息。

3.obj.selectAll(selector):获取指定的节点,selector是一个css选择器。返回NodesRef对象的实例,该对象可用于获取节点信息。

以上两个我感觉是js中querySelector和querySelectorAll的区别。

4.obj.selectViewport():我没用过这个方法。官方说法是选择显示区域,可以用来获取显示区域的大小、滚动位置等信息。它还返回NodesRef对象的一个实例,该实例可用于获取节点信息。

5.exec( function(res){}):执行所有请求,请求结果按请求顺序形成数组,在callback的第一个参数中返回。

返回的NodesRef对象实例非常重要。它有三种方法:

1.bounding client(function(rect){ }):就是这个方法,可以动态获取视图元素的高度、宽度等属性。其他请参考官方文件。

2.scrollOffset( function(res) {}):获取节点的水平和垂直滚动位置等。节点必须是scroll -视图或视口

3.Fields (fields,function () {res}):这可以获得指定元素的自定义属性和类名。详情请参考官方文件。

(学习视频分享:编程入门)

废话这么多,真正的用法举例:

80482dfae94a76131a618fe3ce89a02.png

如果你觉得有点长。可以一步一步写。都是一样的结果。

var obj = wx . createselectquery();obj . selectall( # 39;. NPL -intro # 39;).bounding client rect(function(rect){ console . log(rect[0])。height) console.log(rect[0]。width)})obj . exec();或者返回执行模式。如果出现上面的方法,得到的rect为null,可以考虑使用下面的方法,不会有问题。结果是一样的。

var obj = wx . createselectquery();obj . selectall( # 39;. NPL -intro # 39;).boundingClientRect();obj . exec(function(rect){ console . log(rect[0])。height) console.log(rect[0]。宽度)});当然,这种方法可以用生命周期方法如onLoad、onReady、onShow等来编写。或者在自定义方法中。需要的时候随时打电话。

注意:如果要获取通过wx:if和setData显示和隐藏的元素,调用的这个方法时,获取的内容可能为null。我的解决方案是添加一个计时器:因为这种获取元素的方法是异步的,所以我们必须延迟获取它们。否则,这个方法可能会在元素加载之前被调用,当然返回的结果将是null。

//动态设置高度settimeout(function(){ varquery = wx . createselectquery();query . select( # 39;. Nd-BTN box # 39;).boundingClientRect();query . exec(function(rect){ if(rect[0]= = = null)return;that.setData({ marginBM: rect[0])。height+10 })});},500)相关推荐:以上小程序开发教程是利用小程序的api接口动态获取元素宽度和高度的详细内容。更多请关注主机参考其他相关文章!

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:利用applet的api接口动态获取元素的宽度和高度 https://zhujicankao.com/80227.html

【腾讯云】爆款2核2G云服务器首年40元,企业首购最高获赠300元京东卡
打赏
转载请注明原文链接:主机参考 » 利用applet的api接口动态获取元素的宽度和高度
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!