微信小程序里面无法像用jquery一样获取到元素的节点。小程序提供了一个wx.createSelectorQuery()来获取元素的相关信息。官方的文档对于它的用法都已经写的很详细了。
我直接上在项目中使用的代码吧~
先交待一下我的项目需求,看下图:
获取那块高度的原理很简单,就是页面的整体高度减去1,2,3的高度。
看下页面结构:
js具体代码如下:
Page({ /**
* 页面的初始数据
*/
data: {
tabContHeight:300,
}, //计算高度
getRect: function () {
var _this = this;
//我这里需要获取多个元素的高度,所以用的是selectAll
wx.createSelectorQuery().selectAll('.page-content, .video-box, .play-note, .tab-nav').boundingClientRect().exec(function(res){
_this.setData({
tabContHeight: res[0][0].height - res[0][1].height - res[0][2].height - res[0][3].height
})
})
}, /**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
//调用 计算高度 的方法
this.getRect();
}
})
注意:需要把page和.page-content的height设置为100%,这样你返回的.page-content的高度才是你页面的整个高度。
我们要怎么获取其它的元素属性呢?我们可以先看一下js里面的res返回了一些什么数据,如下图所示:
所以如果我们要获取第2个元素的width,就通过 res[0][1].width就能得到啦~~