【微信小程序scroll-view高度自适应】

微信小程序scroll-view高度自适应

scroll-view高度自适应自动填充屏幕,或自动填充剩余高度。

第一种情况,scroll-view占据整屏

直接设置css样式即可

// 占据整屏 css样式
scroll-view {
	height: 100vh;
}

第二种情况,scroll-view占据剩余屏幕

测试的布局

// 测试布局
<view class="box">
	<view class="view"></view>
 	<scroll-view class="box-scroll"></scroll-view>
</view>

布局样式

// css样式
box {
	display: flex;
	flex-direction:column;
	height:100vh;
 	overflow:hidden;
}
.view {
 	flex-shrink: 0;
 	height: 50px;
}
// 直接设置flex:1高度依然不会自适应,需要添加一个默认高度1px就可以自适应了。
.box-scroll {
 	flex: 1;
 	height: 1px;
}

第三种情况,上面多个view布局,scroll-view占据剩余屏幕

这种情况主要用于已经完成的布局,但适配效果不好,又不想有大的改动
思路:找一个参考的布局通过uni.createSelectorQuery()获取其的高度,再通过uni.getSystemInfoSync().screenHeight获取屏幕高度,计算出大概的scroll_view之外高度即可(这个不能100%获取剩余的屏幕,通过适当的调整比例参数适配屏幕)

	// 比例值(用于参考高度的计算使用,如可直接获取scroll-view外部高度可不用,我这里适用的是2.5)
	const radio = 2.5
	// 获取屏幕高度
	const screenHeihgt = wx.getSystemInfoSync().screenHeight;
	// 获取参考物的高度(可计算的view的高度)
	const query = wx.createSelectorQuery().in(this);
	query.select('#swiper_view').boundingClientRect(data => {
		// 通过参考物计算出scroll-view的适当高度
		this.scrollHeihgt = screenHeihgt -  data.height * radio
	}).exec();

注:如果需要100%适配就需要获取除scroll_view外的全部view的高度,用已获取的屏幕高度进行计算 (或将scroll_view之外的布局包裹在一个大的view中,这样就可以使用第二种情况进行处理)
如果用的是uniapp开发,将代码中的 wx. 改成 uni. 即可

以上是本人工作中用的一些处理方式,如果对您有所帮助,就是我更新的动力,如有您有或发现更优的方式可分享我一下,与君共勉!

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信小程序中,可以通过设置scroll-view组件的样式来实现自定义的外观效果。根据引用\[1\]中的描述,可以使用以下方法来设置scroll-view的样式: 1. 如果要让scroll-view占据整个屏幕,可以设置scroll-view高度为100vh,表示占据整个屏幕的高度。 2. 如果要让scroll-view占据剩余的屏幕高度,可以使用flex布局,将scroll-view的父容器设置为flex,并设置flex-grow属性为1,这样scroll-view会自动占据剩余的空间。 3. 如果scroll-view内部有多个view布局,可以根据需要设置每个view高度,并将scroll-view高度设置为剩余的屏幕高度。 根据引用\[2\]中的测试布局,可以参考以下代码示例来设置scroll-view的样式: ```html <view class="box"> <view class="view"></view> <scroll-view class="box-scroll"></scroll-view> </view> ``` ```css .box { display: flex; flex-direction: column; height: 100vh; } .view { height: 100px; } .box-scroll { flex-grow: 1; } ``` 在上述代码中,通过设置.box的高度为100vh,使其占据整个屏幕高度。.view高度设置为100px,.box-scroll使用flex-grow: 1来占据剩余的屏幕高度。 此外,根据引用\[3\]中的提示,还可以使用enhanced属性来启用scroll-view的增强特性,通过ScrollViewContext来操作scroll-view。但是需要注意,该特性仅在scroll-view组件开启enhanced属性后生效。 希望以上信息对您有所帮助! #### 引用[.reference_title] - *1* *2* [【微信小程序scroll-view高度自适应】](https://blog.csdn.net/qq_31629679/article/details/131381572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [微信小程序 scroll-view](https://blog.csdn.net/weixin_59727199/article/details/126875797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值