uni-app 上面一个view 高度为100rpx 下面的scroll-view 怎么把下面剩下的沾满
时间: 2024-10-18 11:05:41 浏览: 30
要让`scroll-view`充满剩余空间并适应其父视图的高度,你可以结合使用CSS样式和JavaScript来实现。在uni-app中,假设你的布局结构如下:
1. 定义`.modal`和`.modal-content`的样式[^1]时,取消`top`属性的固定高度(如`height: 500rpx;`),这样它的高度会自动响应父元素的变化。
```css
.moddal {
... (其他不变)
top: auto;
}
.moddal-content {
... (其他不变)
position: absolute; // 修改为absolute,以便随父元素滚动
}
```
2. 当你想动态设置`scroll-view`的高度时,你可以先获取屏幕高度,然后减去`.moddal`的高度以及其他可能影响高度的元素高度。这里你可以使用`uni.getSystemInfo()`和`uni createSelectorQuery()`来获取这些信息。
```javascript
uni.getSystemInfo({
success: function(res) {
const screenHeight = res.windowHeight;
const modalHeight = document.querySelector('.moddal').offsetHeight;
uni.createSelectorQuery()
.select('.scroll-view')
.boundingClientRect((rect) => {
let scrollHeight = screenHeight - modalHeight - rect.height;
if (scrollHeight > 0) { // 如果还有空间
uni.$apply(() => {
// 设置scroll-view的高度
this.$refs.scrollView.height = `${scrollHeight}rpx`;
});
}
})
.exec();
},
});
```
这里假设`scroll-view`的ref为`scrollView`,并且你在组件的模板中绑定了这个ref。
阅读全文