mescroll-uni
v1.3.7
Published
mescroll的uni-app版本:【wxs+renderjs实现】高性能的下拉刷新上拉加载组件
Downloads
97
Readme
mescroll --【wxs+renderjs实现】高性能的下拉刷新上拉加载组件
mescroll的uni版本 是专门用在uni-app的下拉刷新和上拉加载的组件, 支持一套代码编译到iOS、Android、H5、小程序等多个平台
mescroll的uni版本 继承了mescroll.js的实用功能: 自动处理分页, 自动控制无数据, 空布局提示, 回到顶部按钮 ..
mescroll的uni版本 丰富的案例, 自由灵活的api, 超详细的注释, 可让您快速自定义真正属于自己的下拉上拉组件
最新文档(1.3.7版本): http://www.mescroll.com/uni.html
2021-04-13 by mescroll (文档可能会有缓存,建议打开时刷新一下)
近期已更新优化的内容:
- 微信小程序, app, h5使用高性能wxs和renderjs, 下拉刷新更流畅丝滑, 尤其能明显解决Android小程序下拉卡顿的问题
- 新增国际化
mescroll-i18n.vue
示例, 新增轮播吸顶菜单mescroll-swiper-sticky.vue
示例, - 新增 "局部区域滚动" 的案例: mescroll-body-part.vue 和 mescroll-uni-part.vue
- 新增 me-video 视频组件, 解决APP端视频下拉悬浮错位的问题, 参考 mescroll-options.vue 示例
- 新增 me-tabs 组件,tabs支持水平滑动; 优化mescroll-more和mescroll-swiper的案例, 顶部tab支持水平滑动
- 吸顶悬浮提供了原生sticky和监听滚动条实现的示例: sticky.vue 和 sticky-scroll.vue (推荐使用sticky样式实现)
- mescroll.scrollTo(y)的y支持css选择器, 包括跨自定义组件的后代选择器, 支持滚动到子组件的view (参考 mescroll-options.vue)
- topbar 顶部是否预留状态栏的高度, 默认false; 还可支持设置状态栏背景: 如 '#ffff00', 'url(xxx) 0 0/100% 100%', 'linear-gradient(xx)'
- down.bgColor 和 up.bgColor 加载区域的背景,不仅支持色值, 而且还是支持背景图和渐变: 如 'url(xxx) 0 0/100% 100%', 'linear-gradient(xx)'
- topbar,bgColor支持一行代码定义background: https://www.runoob.com/cssref/css3-pr-background.html
更新记录:
1.3.7版本 (2021/04/13)
- 新增
mescroll-swiper-sticky.vue
的示例, 轮播吸顶菜单导航 - 新增
mescroll-empty.vue
的示例, 单独使用空布局组件 - 简化tabs在具体项目中的使用,并简化对应的示例
- mescroll-uni 支持动态禁止滚动的属性 disableScroll (注: mescroll-body不支持)
-by 小瑾同学
1.3.5版本 (2021/04/10)
- 新增
mescroll-i18n.vue
的示例, 支持国际化的配置 - down的
beforeEndDelay
不再默认配置 // (显示加载成功/失败的时长, android小程序设置此项结束下拉会卡顿, 配置后请注意测试) - mescroll-body-part.vue 和 mescroll-uni-part.vue 的示例新增参考代码:
异步加载左侧菜单(超简单)
- mescroll的极简示例新增参考代码:
先请求其他接口,再触发upCallback,无需配置auto为false(超简单)
- 修复mescroll-swiper的tabs在app或h5错位的问题
-by 小瑾同学
1.3.3版本 (2020/09/15)
- 新增下拉刷新成功和失败的文本配置, 可在 mescroll-uni-option.js 配置修改
- 新增 me-video 视频组件, 解决APP端视频下拉悬浮错位的问题, 参考最新的 mescroll-options.vue 示例
- 更新 mescroll-comp.vue 的示例, 支持 mescroll-body 子子..子组件 , 包括 mescroll-more.vue 也支持写在子子..子组件
- mescroll-uni 的 down.offset 由原来的 80 调整为 150 , 避免超快速滑动列表到底部,偶尔出现无法再翻页的问题 (mescroll-body无此问题)
- 修复 mescroll-more.vue 和 mescroll-swiper.vue 的示例在字节跳动小程序2.0.0以上新版编辑器无法正常运行的问题
- 修复淘宝和美团的示例下拉卡顿的问题 ( 案例需重新下载 )
-by mescroll
1.3.2版本 (2020/08/05)
- mescroll-body新增sticky属性, 简化吸顶悬浮sticky.vue的示例
- QQ小程序支持wxs,解决QQ小程序卡顿和无法隐藏加载状态的问题
- mescroll.scrollTo(y)的y支持css选择器, 包括跨自定义组件的后代选择器, 支持滚动到子组件的view (参考 mescroll-options.vue)
-by 小瑾同学
1.3.1版本 (2020/07/27)
- 修复Android小程序下拉刷新时, image 和 swiper 脱离文档流的问题
- 修复H5端, 当配置down.use为false时, 返回其他页面无法滚动的问题
- mescroll-comp.js支持mescroll-body写在子子子...组件中 (以前版本仅支持写在一级子组件)
- 吸顶悬浮提供了sticky样式和监听滚动条实现的示例: sticky.vue 和 sticky-scroll.vue (推荐使用sticky样式实现)
-by 小瑾同学
1.3.0版本 (2020/07/10)
- 微信小程序, app, h5使用高性能wxs和renderjs, 下拉刷新更流畅丝滑, 尤其能明显解决Android小程序下拉卡顿的问题
- 使用wxs和renderjs优化所有案例, 尤其是中高级案例, 建议大家重新下载最新的案例
- 废弃down的isBounce配置, 已通过renderjs自动判断, 无需配置mescroll-touch
- 废弃down的fps配置, 已通过wxs提高性能, 无需手动节流
- 新增 "局部区域滚动" 的案例: mescroll-body-part.vue 和 mescroll-uni-part.vue
- 解决swiper切换时,有时会触发下拉刷新的问题, 已避免swiper和下拉刷新相互冲突
- 解决钉钉小程序mescroll-uni下拉刷新有时无法触发的问题
- 解决上拉加载进度在部分Android手机显示不全的问题
- 提高 me-tabs 组件在部分Android手机的兼容性
-by 小瑾同学
1.2.8版本 (2020/06/28)
- 解决 mescroll-uni 再某些情况下列表数据渲染不完全的问题 ( mescroll-body无此问题 )
- 优化 me-tabs 组件, 使用支付宝小程序可隐藏滚动条, 同时修复字节跳动小程序tab切换时渲染延迟的问题 -by 小瑾同学
1.2.7版本 (2020/06/24)
- 上拉加载结束隐藏底部加载区域,避免加载区域占位
- h5端的tab页默认偏移TabBar的高度,避免h5端列表被TabBar遮住 (如不想偏移,可通过配置 :bottombar="false" 取消)
- 新增 me-tabs 组件,tabs支持水平滑动; 优化mescroll-more和mescroll-swiper的案例, 顶部tab支持水平滑动
1.2.6版本 (2020/06/16)
- mescroll-uni 和 mescroll-body 的 scrollTo 正式支持 scroll-into-view (传入的 y 为view的id即可生效)
- topbar 顶部是否预留状态栏的高度, 默认false; 这个版本还可支持设置状态栏背景: 如 '#ffff00', 'url(xxx)', 'linear-gradient(xx)'
- down.bgColor 和 up.bgColor 加载区域的背景,不仅支持色值, 而且还是支持背景图和渐变: 如 'url(xxx)', 'linear-gradient(xx)'
- 通过css方式适配iPhoneX, 比之前通过style方式具有更好的兼容性, 也同时消除了edge浏览器重复设置相同属性的警告
- 移除非必须的标签选择器,避免微信小程序提示组件内不可使用标签选择器的警告
- 修复当配置up的use为false时,默认的下拉刷新有时候无法自动隐藏的问题
- 修复当配置down的native为true时,auto失效的问题
- 修复空布局在某些情况下图片和文本错位的问题
1.2.5版本 (2020/03/15)
- mescroll-body 的 props 支持 safearea 的配置 (需要适配iPhoneX时,配置为 true 即可, 默认 false)
- mescroll-uni 的 scrollTo 支持 scroll-into-view (当传入的 y 为view的id时, 即可生效)
- 新增 下拉加载聊天记录的案例 list-msg.vue, 类似微信QQ的聊天记录
1.2.4版本 (2020/03/11)
- down和up分别新增 bgColor 的配置: 下拉区域背景颜色,默认"transparent"
- down和up分别新增 textColor 的配置: 下拉文本的颜色,默认"gray" (当bgColor配置了颜色,而textColor未配置时,则自动默认为白色)
- 调整mescroll-more-item.js, 使mescroll-more的案例支持初始化tabIndex大于0的tab页
- mescroll-body支持isBounce的配置, 解决H5下拉刷新失效的问题
- 解决mescroll-body在Android真机小程序下拉卡顿的问题 (mescroll-uni无此问题)
1.2.3版本 (2020/02/18)
新增3个mescroll的mixins, 极大简化了mescroll-comp, mescroll-more, mescroll-swiper的案例
1.2.2版本 (2020/02/16)
- 调整mescroll-more和mescroll-swiper的案例,确保各小程序平台可正确获取到mescroll对象
- 修复字节跳动小程序初始化时的异常警告: 详情
1.2.1版本 (2020/02/08)
- 新增 <mescroll-body> 组件, 用来填补 <mescroll-uni> 的不足.
- mescroll-body基于原生页的滚动,支持写入原生组件和fixed元素,不必固定高度,不必配置pages.json,简单性能好.
- mescroll-body可配置down的native:true, 可直接代理系统自带的下拉组件, 参考 mescroll-native 示例
- 新增mescroll-mixins.js,简化代码,兼容更多小程序平台
- 修复字节跳动小程序和支付宝小程序的部分异常警告
1.2.0版本 (2020/01/06)
- mescroll-uni.vue的props新增height. // 简单快捷设置mescroll的高度, 此项有值,则不使用fixed. 使用场景: 当在弹窗或浮层中使用fixed固定mescroll高度比较麻烦时, 配置此项就很方便了 支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx, 百分比则相对于windowHeight
- mescroll-uni.vue的props新增safearea. // bottom的偏移量是否加上底部安全区的距离, 默认false (需要适配iPhoneX时使用,此项值对回到顶部按钮生效)
- mescroll-uni.vue的props中,top和bottom不仅仅支持数字, 还支持"20rpx", "20px", "20%"格式的值
- 补充锁定上拉加载mescroll.lockUpScroll的方法
- down.fps默认值提高至80
- 独立出空布局的组件<mescroll-empty>, 以便在不使用mescroll的界面也能统一管理空布局
<template>
<view>
// 基本用法
<mescroll-empty v-if="list.length==0"></mescroll-empty>
// 所有配置项 (option同up.empty的配置一致)
<mescroll-empty v-if="isShowEmpty" :option="optEmpty" @emptyclick="emptyClick"></mescroll-empty>
</view>
</template>
<script>
import MescrollEmpty from '@/components/mescroll-uni/components/mescroll-empty.vue';
export default {
components: {
MescrollEmpty
},
...
}
- 为了更快速自定义回到顶部按钮, up.toTop新增以下配置项:
toTop: {
zIndex: 9990, // fixed定位z-index值
right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
safearea: false, // bottom的偏移量是否加上底部安全区的距离, 默认false. 需要适配iPhoneX时使用 (具体的界面如果不配置此项,则取mescroll-uni.vue的safearea值)
width: 72, // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
radius: "50%", // 圆角, 默认"50%" (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
left: null, // 到左边的距离, 默认null. 此项有值时,right不生效. (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
duration: 300, // 回到顶部的动画时长,默认300ms (当值为0或300则使用系统自带回到顶部,更流畅; 其他值则通过step模拟,部分机型可能不够流畅,所以非特殊情况不建议修改此项)
src: null, // (已有配置)
offset: 1000 // (已有配置)
}
1.1.9版本 (2019/12/16)
- 解决左右滑动屏幕,某些情况下会触发上拉回调的bug
- mescroll-uni.vue的props新增topbar: top的偏移量是否加上状态栏高度 (当fixed为false时不生效; 使用场景:取消原生导航栏时,配置此项可自动加上状态栏高度的偏移量)
1.1.8版本 (2019/11/01)
- 解决Android小程序快速上拉可能会导致不断翻页直到没有数据为止的bug
- 过滤某些情况下touch的警告输出
1.1.7版本 (2019/10/15)
- 重点解决下拉刷新卡顿,特别是Android小程序卡顿的问题
- 补充之前版本遗漏的mescroll.lockUpScroll方法
- 支持数据不满屏时,仍可触发翻页的回调
1.1.5版本 (2019/07/25)
- up新增isBounce的配置, 默认值为false. 目的是解决H5在ios下拉出现灰色背景和android端无法正常下拉的问题. 详见: http://www.mescroll.com/qa.html?v=190725#q25
- 修复setClientHeight某些情况下会提示undefined的问题
- 修复在mescroll-uni-option.js配置page会导致分页异常的问题
1.1.2版本 (2019/07/19)
一. 修复和优化的内容:
- 修复列表不满屏时,无法上拉的问题
- 修复列表滚动到底部,有时无法上拉的问题
- 修复快速滚动到顶部时,滚动条的位置有时不为0的问题
- 修复配置page.num不生效的问题
- 修复小程序android端下拉卡顿的问题 (可配置down的supply,复杂的列表可适当调大值)
- 修复H5多mescroll的情况下回到顶部按钮错位的问题
- 优化和简化逻辑,去除冗余代码
二. 完善获取节点信息的方式:
- 获取mescroll的唯一元素id: mescroll.viewId (可通过uni.createSelectorQuery进一步获取更多信息)
- 获取滚动内容的高度: mescroll.getScrollHeight()
- 获取mescroll的高度: mescroll.getClientHeight()
- 获取滚动条位置: mescroll.getScrollTop()
- 获取到底部的距离: mescroll.getScrollBottom()
- 获取滚动的方向: mescroll.isScrollUp // true向上滑; false向下滑
- 更多信息详见mescroll-options的示例
1.1.1版本 (2019/07/16)
- 修复滚动到顶部,有时无法下拉的问题
- 修复禁止上拉时,列表底部有空白区域的问题
1.1.0版本 (重要版本) (2019/07/01)
一. 简化使用:
- 无需在page.json中配置onReachBottomDistance
- 无需在页面中注册onReachBottom 和 onPageScroll
- 初始化时@init不再是必须配置项
- 极大的简化 list-mescroll-more.vue 的案例
- 全面支持swiper,详见 mescroll-swiper.vue 的案例
- 所有基础案例都有所简化, 建议重新下载参考. (以前版本向下兼容)
- 所有中高级案例自定义的部分,改动比较大, 必须重新下载参考. (不兼容以前版本)
二. 优化性能:
- 支持fixed定位,可实现局部区域滚动
- 支持swiper,scrollview嵌套使用
- 优化下拉逻辑,修复下拉刷新卡顿和抖动的问题
- 优化默认样式,避免某些情况出现双滚动条的问题
- up废弃errDistance配置, 内部已优化处理相关问题
三. 新增配置:
- down和up新增fps节流配置.(默认40fps, 值越大每秒刷新频率越高)
- up新增offset配置: 距底部多远时,触发upCallback (默认80, 代替page.json的onReachBottomDistance)
- up新增onScroll配置: 是否监听滚动事件,默认false
- < mescroll-uni 新增 @scroll="scroll" 获取滚动条的位置和滚动方向, 需配置up的onScroll为true, 详见 mescroll-options.vue 的示例
- < mescroll-uni 新增 :fixed="true/false" 是否支持fixed定位, 默认 true. 当:fixed="true", 此时 :top 和 :bottom 为 fixed 的 top 和 bottom 当:fixed="false", 此时 :top 和 :bottom 为 padding-top 和 padding-bottom
1.0.3版本 (2019/06/13)
- 默认设置page高度100%,使列表不满屏的时候,仍可下拉刷新
- 加入-webkit-overflow-scrolling: touch, 编译到H5和APP,使iOS列表滚动更流畅
- mescroll-empty加入box-sizing: border-box, 修复图标和文本不居中的问题
- 上拉配置新增errDistance,默认110 // mescroll.endErr()的时候需往上滑动一段距离,使其能再次触发上拉加载 (已在1.1.0版本废弃)
- mescroll.endErr(errDistance) 新增的参数 errDistance; 可单独配置异常往上滑动的距离 (已在1.1.0版本废弃)
- 修改了list-mescroll-more的160行为mescroll.endErr(0);(已在1.1.0版本优化)
- 新增mescroll.scrollTo(y,t) 滚动到指定的位置; 本质调用的是uni.pageScrollTo
1.0.2版本 (2019/05/28)
- 组件根元素加入mescroll-uni的样式,empty新增fixed等配置项;
- 修复list-mescroll-more案例切换tabs,某些情况的page.num会错乱的问题