在onload或在onready获取uniapp 获取元素高度uni.createSelectorQuery().in(this).select('#newsRows').boundingClientRect((rect) => {一直返回null
时间: 2024-02-03 15:14:03 浏览: 210
可能是因为您的元素还没有完全加载完毕,导致在 `onload` 或 `onReady` 时获取高度时返回 null。您可以尝试在组件的 `mounted` 生命周期函数中获取元素的高度,因为在这个生命周期函数中,组件内的所有元素已经加载完毕。具体实现方法如下:
```js
mounted() {
uni.createSelectorQuery().in(this).select('#newsRows').boundingClientRect((rect) => {
console.log('元素的高度:', rect.height)
}).exec()
}
```
另外需要注意的是,在使用 `uni.createSelectorQuery()` 方法时,需要在方法后面添加 `.exec()` 才会真正执行查询操作。
相关问题
uniapp获取元素高度
可以使用uni.createSelectorQuery()方法来获取元素的高度,具体步骤如下:
1. 在页面的onLoad或onReady生命周期函数中获取元素节点:
```
onLoad() {
uni.createSelectorQuery().select('.element').boundingClientRect(data => {
console.log(data.height) // 打印元素高度
}).exec()
}
```
2. 在页面中对应的元素上添加class名为“element”:
```
<view class="element">这是一个元素</view>
```
这样就可以获取到该元素的高度了。需要注意的是,使用uni.createSelectorQuery()方法获取元素高度时,必须等到元素渲染完成后才能获取到正确的高度,因此建议在onReady生命周期函数中获取元素高度。
uniapp 获取元素位置
在 UniApp 中,你可以使用 `uni.createSelectorQuery` 方法来获取元素的位置信息。以下是一个简单的示例:
```javascript
// 在页面的 `onLoad` 或 `onReady` 生命周期中使用
onLoad() {
uni.createSelectorQuery()
.select('.target-element') // 选择器可以是 class、id 或标签名
.boundingClientRect((rect) => {
console.log(rect) // rect 对象包含了元素的位置信息
})
.exec()
}
```
在上述示例中,我们使用 `uni.createSelectorQuery` 方法创建了一个选择器查询对象,然后使用 `select` 方法选择了一个名为 `.target-element` 的元素。接着,我们通过调用 `boundingClientRect` 方法来获取元素的位置信息,并将位置信息作为参数传递给回调函数。
在回调函数中,你可以根据需要处理位置信息,例如打印到控制台或进行其他操作。
请注意,`boundingClientRect` 方法是异步的,所以你需要在 `exec` 方法中执行查询。
阅读全文