这篇文章主要介绍了微信小程序中scroll-view高度自适应问题怎么办解决,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
第一种情况,scroll-view占据整屏
scroll-view {
height: 100vh;
}
第二种情况,scroll-view自适应页面剩余高度
xml文件
<view class="box">
<view class="box-head"></view>
<scroll-view class="box-scroll"></scroll-view>
</view>
wxss文件
.box {
display: flex;
flex-direction:column;
height:100vh;
overflow:hidden;
}
.box-head {
flex-shrink: 0;
height: 50px;
}
.box-scroll {
flex: 1;
height: 1px;
}
flex:1 高度依然不会自适应加一个默认高度1px就可以自适应了
通用组件化处理
list.wxml
<scroll-view
class="list-scroll {{ autoHeight ? 'list-scroll--auto' : '' }}"
scroll-y
enable-back-to-top
bind:scrolltolower="scrolltolower"
>
<slot></slot>
<!-- 加载完成 -->
<view wx:if="{{ finished }}" class="list-loading">
<view class="list-loading__text">{{ finishedText }}</view>
</view>
<!-- 加载效果 -->
<view wx:elif="{{ loading }}" class="list-loading">
<van-loading type="spinner" size="20"></van-loading>
</view>
</scroll-view>
list.scss(需编译成list.wxss)
.list {
&-scroll {
flex: 1;
height: 100vh;
&--auto {
height: 1px;
}
}
&-loading {
margin: 10px 0;
text-align: center;
&__text {
font-size: 16px;
color: #a6a6a6;
line-height: 1;
}
}
}
list.js
// components/list/list.js
Component({
externalClasses: ["class"],
options: {
virtualHost: true, // 组件虚拟化
},
/**
* 组件的属性列表
*/
properties: {
// 加载状态
loading: {
type: Boolean,
value: false,
},
// 加载完成
finished: {
type: Boolean,
value: false,
},
// 加载完成文字
finishedText: {
type: String,
value: "没有更多了",
},
// 自动初始化获取数据
autoInit: {
type: Boolean,
value: true,
},
// flex自定适应高度
autoHeight: {
type: Boolean,
value: false,
},
},
/**
* 组件的方法列表
*/
methods: {
/**
* 滚动到底部阈值
*/
scrolltolower() {
// 退出执行
if (
this.data.emptyText || // 没有数据
this.data.loading || // 正在加载
this.data.finished // 加载完成
) {
return;
}
this.setData({
loading: true,
});
this.triggerEvent("load");
},
},
/**
* 组件声明周期
*/
lifetimes: {
attached() {
// 自动初始化
if (this.data.autoInit) {
this.scrolltolower();
}
},
},
});
组件化后一定要设置组件虚拟化。否则高度还是不会自适应
list.json
"component": true,
"usingComponents": {
"van-loading": "@vant/weapp/loading/index"
}
需要安装van-loading或者自己写一个loading效果
使用
全屏
<com-list></com-list>
自适应
<com-list auto-height></com-list>
感谢你能够认真阅读完这篇文章,希望小编分享微信小程序中scroll-view高度自适应问题怎么办解决内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。