1.0.4 • Published 3 years ago
sw-scroll v1.0.4
sw-scroll 上拉加载下拉刷新
v1.0 版
上传至npm包可安装下载并npm构建 修改参数配置使组件使用更便捷 增加加载插槽可以自定义加载更多样式
前言
基于小程序原生组件scroll-view的扩展与封装,实现简单的上拉加载下拉刷新
npm 安装 安装之后开发者工具点击npm构建
npm i sw-scroll
引入
在app.json
或index.json
中引入组件
"usingComponents": {
"sk-scroll": "sw-scroll/index",
}
更新日志
基础用法代码演示
页面结构
<sw-scroll class="demo1" scrollOption="{{scroll}}" bindrefresh="refresh" bindloadMore="loadMore" background="#fff">
<view class="list-inner" slot="inner">
<!-- 循环内容 -->
<view class="item" wx:for="{{list}}" wx:key="unique">
第{{index + 1}}条内容
</view>
<!-- 循环内容 -->
</view>
</sw-scroll>
配置 详见api
// data 中配置
scroll: {
// 设置分页信息
pagination: {
page: 1,
totalPage: 10,
limit: 10,
length: 100
},
// 设置数据为空时的图片
empty: {
img: 'http://coolui.coolwl.cn/assets/mescroll-empty.png'
},
// 设置下拉刷新
refresh: {
type: 'default',
style: 'black',
background: "#000"
},
// 设置上拉加载
loadmore: {
type: 'default',
icon: 'http://upload-images.jianshu.io/upload_images/5726812-95bd7570a25bd4ee.gif',
background: '#f2f2f2',
// backgroundImage: 'http://coolui.coolwl.cn/assets/bg.jpg',
title: {
show: true,
text: '加载中',
color: "#999",
shadow: 5
}
}
},
事件 详见api
// 加载数据
let that = this
getData:function (type) {
// 可走后台接口
if (type == 'refresh') {
// 刷新时执行
// 设置页数1
let scroll = that.data.scroll
scroll.pagination.page = 1
}else{
// 加载时执行
// 设置页数+1
let scroll = that.data.scroll
scroll.pagination.page = scroll.pagination.page + 1
// 数据加载完隐藏loadmore
that.selectComponent(".demo1").loadEnd()
}
},
// 下拉 刷新 页数设置1
refresh: function () {
this.getData('refresh')
},
// 上拉 加载 页数设置+1
loadMore: function () {
this.getData('loadMore')
},
// 自定义下拉刷新时执行 插槽下拉 返回的下拉进度p
refreshPulling: function (e) {
p = e.detail.p
},
scrollOption 滚动设置
分页设置 pagination
参数 说明 类型 默认值 版本 page 页码 Number 1
2.0.0 totalPage 总页码数 Number 0
2.0.0 limit 每页显示个数 Number 0
2.0.0 length 总个数(个数为0是,页面显示空样式) Number 0
2.0.0 空设置 empty
参数 说明 类型 默认值 版本 img 数据为空时显示的图片 String http://coolui.coolwl.cn/assets/mescroll-empty.png
2.0.0 下拉刷新设置 refresh
参数 说明 类型 默认值 版本 type 下拉样式类型,小程序默认样式或自定义 支持 default | diy
String default
2.0.0 style 默认模式下样式有深色和浅色 支持 black | white
String black
2.0.0 diyLevel 自定义等级,简单设置:1,插槽自定义:2 支持 1 | 2
Number 2.0.0 p 自定义等级2时,下拉的百分比方便自定义动画,设置0即可 Number 0
2.0.0 refreshthreshold 自定义下拉高度 Number 2.0.0 backgroundImage 自定义下拉背景图片 String 2.0.0 title 自定义下拉文字 可设置 show
: 是否显示,text
: 文字内容,color
: 文字颜色,shadow
: 文字阴影范围(0时不显示)Obj 2.0.0 上拉加载设置 loadmore
参数 说明 类型 默认值 版本 type 上拉样式类型,默认样式或插槽自定义 支持 default | diy
String default
2.0.0 icon 默认样式时设置图标 String 2.0.0 title 默认样式时设文字 可设置 show
: 是否显示,text
: 文字内容,color
: 文字颜色,shadow
: 文字阴影范围(0时不显示)Obj 2.0.0
Slots
名称 | 说明 | 版本 |
---|---|---|
inner | 加载列表内容区域 | 2.0.0 |
refresh | 下拉自定义结构 | 2.0.0 |
loadmore | 上拉自定义结构 | 2.0.0 |
Events
事件名 | 说明 | 参数 | 版本 |
---|---|---|---|
bind:refresh | 下拉刷新成功时触发 | - | 2.0.0 |
bind:loadMore | 上拉加载成功时触发 | event.detail: 当前输入值 | 2.0.0 |
bind:refreshPulling | 下拉时触发 | event.detail.p: 下拉进度 从0开始到1, 可根据p实现一些动画效果 | 2.0.0 |
Methods
事件名 | 说明 | 参数 | 版本 |
---|---|---|---|
loadEnd | 下拉刷新成功时调用关闭loadmore显示,用法 this.selectComponent(".demo1").loadEnd() | - | 2.0.1 |