微信小程序完美解决scroll-view高度自适应问题的方法


Posted in Javascript onAugust 08, 2020

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

微信小程序完美解决scroll-view高度自适应问题的方法

scroll-view {

 height: 100vh;

}

第二种情况,scroll-view自适应页面剩余高度

微信小程序完美解决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高度自适应问题的方法的文章就介绍到这了,更多相关小程序scroll-view高度自适应内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
document.all与WEB标准
May 13 Javascript
javascript利用初始化数据装配模版的实现代码
Nov 17 Javascript
javascript开发技术大全 第4章 直接量与字符集
Jul 03 Javascript
Js注册协议倒计时的小例子
Jun 24 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
Aug 28 Javascript
基于javascript实现checkbox复选框实例代码
Jan 28 Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 Javascript
易被忽视的js事件问题总结
May 14 Javascript
javascirpt实现2个iframe之间传值的方法
Jun 30 Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
Jan 27 Javascript
js实现橱窗展示效果
Jan 11 Javascript
JavaScript中变量提升和函数提升的详解
Aug 07 #Javascript
javascript中正则表达式语法详解
Aug 07 #Javascript
vue 子组件修改data或调用操作
Aug 07 #Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
Aug 07 #Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 #Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
Aug 07 #Javascript
javascript前端和后台进行数据交互方法示例
Aug 07 #Javascript
You might like
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
Vue router安装及使用方法解析
2020/12/02 Vue.js
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
python自动安装pip
2014/04/24 Python
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python类属性的延迟计算
2016/10/22 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
python多任务之协程的使用详解
2019/08/26 Python
详解python中docx库的安装过程
2019/11/08 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
小学庆六一活动方案
2014/02/28 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书