マイクロメッセージウィジェットはノードの高さを取得し、適応高さの目的を達成する.
10008 ワード
1、微信提供のwxを利用する.createSelectorQuery()メソッド実装2、実装コード:.wxml
js
3、この方法には穴がある.ノードの高さを取得する可能性があるとき、まだレンダリングが終わっていない.ここではバックグラウンドのデータに応答する最も長い方法で呼び出した.もう一つの方法は遅延で、まだ具体的な実験がない.
{{item.dName}}
{{deviceDetail.dName}}
{{harmonicElectricityList == null?' ':harmonicElectricityList}}%
{{harmonicVoltageList == null?' ':harmonicVoltageList}}%
{{maxDeviceDetail.maxDay == null?' ':maxDeviceDetail.maxDay}}kW
{{maxDeviceDetail.maxMonth == null?' ':maxDeviceDetail.maxMonth}}kW
{{item.psName}} {{item.data}}V
{{item.psName}} {{item.data}}A
{{item.psName}} {{item.data}}
{{item.psName}} {{item.data}}
{{item.psName}} {{item.data}}
{{item.psName}} {{item.data}}
js
selectHight: function(){
let self = this;
console.log('====== ======')
var query = wx.createSelectorQuery();
console.log('sssss:',query)
query.select('#col-width').boundingClientRect(function (rect){
console.log(' :',rect.width)
self.setData({
icoWidth: rect.width * 2
})
}).exec();
query.select('#item-height').boundingClientRect(function (rect){
let a = rect.width - self.data.icoWidth
let b = self.data.stringWidth
console.log("=======a:",a)
console.log("=======b:",b)
if(a>b){
// console.log("==========1 ==========")
self.setData({
winHeight: 0 + rect.height
})
}else {
let c = (b*1.0)/(a*1.0)
let d = Math.ceil(c)
// console.log("============== ============",c)
// console.log("============== ============",d)
self.setData({
winHeight: 0 + rect.height * d
})
}
}).exec();
query.select('#tui-flex-box').boundingClientRect(function (rect){
self.setData({
winHeight: self.data.winHeight + rect.height
})
}).exec();
query.select('#tui-grid').boundingClientRect(function (rect){
self.setData({
winHeight: self.data.winHeight + rect.height
})
}).exec();
query.select('#tui-title').boundingClientRect(function (rect){
self.setData({
winHeight: self.data.winHeight + rect.height
})
self.setData({
clientHeight: self.data.winHeight
})
// console.log(" :",self.data.clientHeight)
}).exec();
}
3、この方法には穴がある.ノードの高さを取得する可能性があるとき、まだレンダリングが終わっていない.ここではバックグラウンドのデータに応答する最も長い方法で呼び出した.もう一つの方法は遅延で、まだ具体的な実験がない.