1.0.4 • Published 3 years ago

sw-scroll v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

sw-scroll 上拉加载下拉刷新

v1.0 版

上传至npm包可安装下载并npm构建 修改参数配置使组件使用更便捷 增加加载插槽可以自定义加载更多样式

前言

基于小程序原生组件scroll-view的扩展与封装,实现简单的上拉加载下拉刷新

npm 安装 安装之后开发者工具点击npm构建

npm i sw-scroll 

引入

app.jsonindex.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 滚动设置

  1. 分页设置 pagination

    参数说明类型默认值版本
    page页码Number12.0.0
    totalPage总页码数Number02.0.0
    limit每页显示个数Number02.0.0
    length总个数(个数为0是,页面显示空样式)Number02.0.0
  2. 空设置 empty

    参数说明类型默认值版本
    img数据为空时显示的图片Stringhttp://coolui.coolwl.cn/assets/mescroll-empty.png2.0.0
  3. 下拉刷新设置 refresh

    参数说明类型默认值版本
    type下拉样式类型,小程序默认样式或自定义 支持 default | diyStringdefault2.0.0
    style默认模式下样式有深色和浅色 支持 black | whiteStringblack2.0.0
    diyLevel自定义等级,简单设置:1,插槽自定义:2 支持 1 | 2Number2.0.0
    p自定义等级2时,下拉的百分比方便自定义动画,设置0即可Number02.0.0
    refreshthreshold自定义下拉高度Number2.0.0
    backgroundImage自定义下拉背景图片String2.0.0
    title自定义下拉文字 可设置 show: 是否显示, text: 文字内容, color: 文字颜色, shadow: 文字阴影范围(0时不显示)Obj2.0.0
  4. 上拉加载设置 loadmore

    参数说明类型默认值版本
    type上拉样式类型,默认样式或插槽自定义 支持 default | diyStringdefault2.0.0
    icon默认样式时设置图标String2.0.0
    title默认样式时设文字 可设置 show: 是否显示, text: 文字内容, color: 文字颜色, shadow: 文字阴影范围(0时不显示)Obj2.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