【uniapp】解决scroll-view滚动视图组件无法自适应高度问题

在做前端做页面通常使用的是弹性伸缩布局flex的,它的好处是,可以达到无缝拼接布局,充分占用剩余的空间布局,但有个scroll-view滚动视图组件显然无法自适应高度,固定高度那不是自己想要的,现在要实现自适应高度,要怎么处理才好呢。

1. 发现问题

首先,看一下源代码,大致是这样写的,样式用的flex纵向布局

<view class="page-content">
	<view>
		<!-- 省略其它的布局 -->
	</view>
	<scroll-view class="page-content-scroll" :enable-flex="true" :scroll-y="true">
		<view class="">
			<!-- 可滚动的区域 -->
		</view>
	</scroll-view>
</view>

滚动视图scroll-view设置的样式为 flex:1;,自适应填充高度,如下图所示,
在这里插入图片描述

发现问题
一开始看着效果是没问题的,可当视图里的内容超出高度时就会被伸开,从而导致原来保持的布局大小被打乱,这是一个问题

2. 解决问题

通过排查后发现,只需要再加个样式overflow-y:auto;就可以了,如下图所示
在这里插入图片描述
这样就能自适应高度了,不得不说,CSS样式要用到精通才行哦~

💡小提示
不需要按照官方文档上说得要设置高度(固定),用自适应高度才舒适~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现`uni-app`中`scroll-view`的高度适应,可以采用以下几种方法: 1. 使用flex布局:将`scroll-view`的父容器设置为flex布局,并将`scroll-view`的高度设置为100%。这样`scroll-view`会自动拉伸以适应父容器的高度。 ```html <view class="container"> <scroll-view class="scroll-view" scroll-y> <!-- scroll-view的内容 --> </scroll-view> </view> <style> .container { display: flex; flex-direction: column; height: 100%; } .scroll-view { flex: 1; } </style> ``` 2. 使用计算属性:通过计算当前页面的可视高度来动态设置`scroll-view`的高度。 ```html <template> <view class="container"> <scroll-view class="scroll-view" :style="{ height: scrollViewHeight + 'px' }" scroll-y> <!-- scroll-view的内容 --> </scroll-view> </view> </template> <script> export default { data() { return { scrollViewHeight: 0, }; }, mounted() { this.setScrollViewHeight(); }, methods: { setScrollViewHeight() { uni.getSystemInfo({ success: (res) => { const windowHeight = res.windowHeight; const query = uni.createSelectorQuery().in(this); query.select('.container').boundingClientRect((rect) => { const containerHeight = rect.height; this.scrollViewHeight = windowHeight - containerHeight; }).exec(); }, }); }, }, }; </script> <style> .container { height: 100%; } .scroll-view { height: 100%; } </style> ``` 通过上述方法,你可以实现`uni-app`中`scroll-view`的高度适应。根据你的具体需求,选择其中一种方法即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TA远方

谢谢!收到你的爱╮(╯▽╰)╭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值