官方文档已声明,即使在page.json和app.json中开启下拉刷新,scroll-view组件也是不支持的。但我们可以通过曲线救国的方法来实现

实现代码

// wxml
<scroll-view style='height: 300px;'
scroll-y="{{true}}"
scroll-top="{{scrollTop}}"
bindscroll="scrollFn"
bindscrolltolower="loadMore"
>
<view class="list" wx:for="{{list}}" wx:key="{{index}}">{{item}}</view>
</scroll-view>
// js
Page({
data: {
list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
timer: null, // 保存定时器
scrollTop: 5 // 设定触发条件的距离
},
onPullDownRefresh() {
// 监听该页面用户下拉刷新事件
// 可以在触发时发起请求,请求成功后调用wx.stopPullDownRefresh()来结束下拉刷新
console.log('下拉拉拉')
},
refresh() { // 函数式触发开始下拉刷新。如可以绑定按钮点击事件来触发下拉刷新
wx.startPullDownRefresh({
success(errMsg) {
console.log('开始下拉刷新', errMsg)
},
complete() {
console.log('下拉刷新完毕')
}
}),
},
scrollFn(e) {
// 防抖,优化性能
// 当滚动时,滚动条位置距离页面顶部小于设定值时,触发下拉刷新
// 通过将设定值尽可能小,并且初始化scroll-view组件竖向滚动条位置为设定值。来实现下拉刷新功能,但没有官方的体验好
clearTimeout(this.timer)
if (e.detail.scrollTop < this.data.scrollTop) {
this.timer = setTimeout( () => {
this.refresh()
}, 350)
}
},
loadMore() { // 触底加载更多
let len = this.data.list.length,
lastItem = this.data.list[len - 1];
for(let i = 0; i< len; i++) {
this.data.list.push(lastItem + i + 1)
this.setData({
'list': this.data.list
})
}
}
})

onPullDownRefresh 和 wx.startPullDownRefresh 的区别

onPullDownRefresh : 下拉刷新。官方认为下拉一定距离并释放,为一次完整的下拉刷新,页面的onPullDownRefresh 才能监听到。因此,如果触发开始下拉,但仍长按不释放,不会被识别为一次完整的下拉刷新,onPullDownRefresh 无法监听到
wx.startPullDownRefresh:开始下拉刷新。因此即使下拉一定距离触发仍长按不释放,也能触发。

说的有点乱,可以按正常下拉释放和下拉并长按一段时间再释放,来查看控制台结果的差异

转 : https://blog.csdn.net/ishowman/article/details/79536163

scroll-view组件实现下拉刷新, 拉到底加载更多的更多相关文章

  1. juery下拉刷新,div加载更多元素并添加点击事件(二)

    buffer.append("<div class='col-xs-3 "+companyId+"' style='padding-left: 10px; padd ...

  2. Android 自定义 ListView 上下拉动“刷新最新”和“加载更多”歌曲列表

    本文内容 环境 测试数据 项目结构 演示 参考资料 本文演示,上拉刷新最新的歌曲列表,和下拉加载更多的歌曲列表.所谓"刷新最新"和"加载更多"是指日期.演示代码 ...

  3. jQuery WeUI 组件下拉刷新和滚动加载的实现

    最近在做手机版使用到了下拉刷新和滚动加载,记录一下实现过程: 一.引入文件 ? 1 2 3 4 <link rel="stylesheet" href="Conte ...

  4. ListView上拉刷新和分页加载完整的Dome

    很多人工作的过程中都会碰到ListView下拉刷新和分页加载,然后大多数公司都已经把框架写好了,大家直接用就可以了,有些人一直对这个事情处于迷茫状态,为了让大家对上拉刷新和分页加载有一个比较全面的认识 ...

  5. 第三方 XListview 上拉加载、下拉刷新、分页加载和Gson解析

    注意:此Demo用的是第三方的Xlistview.jar,需要复制me文件夹到项目中,两个XML布局文件和一张图片 把下面的复制到String中 <string name="xlist ...

  6. SwipeRefreshLayout实现下拉刷新上滑加载

    1. 效果图 2.RefreshLayout.java package myapplication.com.myapplication; import android.content.Context; ...

  7. mui 动态加载数据出现的问题处理 (silder轮播组件 indexedList索引列表 下拉刷新不能继续加载数据)

    mui-slider 问题:动态给mui的图片轮播添加图片,轮播不滚动. 解决:最后把滚动轮播图片的mui(".mui-slider").slider({interval: 300 ...

  8. Android 下拉刷新上啦加载SmartRefreshLayout + RecyclerView

    在弄android刷新的时候,可算是耗费了一番功夫,最后发觉有现成的控件,并且非常好用,这里记录一下. 原文是 https://blog.csdn.net/huangxin112/article/de ...

  9. 微信小程序下拉刷新 并重新加载数据

    1.在json页面配置: { "enablePullDownRefresh": true } 2.调用刷新函数 onPullDownRefresh: function() { wx ...

随机推荐

  1. 表格分页——tablePagination

    背景:表格是最为通用的展示方式,为了展示的统一性,以及分页组件的重用,这里写一个分页组件,供比较多或者较少数据2种表格进行分页展示. 分页组件: <template> <el-pag ...

  2. Python使用jieba分词

    # -*- coding: utf-8 -*- # Spyder (python 3.7) import pandas as pd import jieba import jieba.analyse ...

  3. 1260:【例9.4】拦截导弹(Noip1999)

    题目来源:http://ybt.ssoier.cn:8088/problem_show.php?pid=1260 1260:[例9.4]拦截导弹(Noip1999) 时间限制: 1000 ms     ...

  4. Selenium常用API的使用java语言之4-环境安装之Selenium

    1.通过jar包安装 点击Selenium下载 链接 你会看到Selenium Standalone Server的介绍: The Selenium Server is needed in order ...

  5. DOM(innerHTML和className)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+SpringMVC项目详解

    http://blog.csdn.net/noaman_wgs/article/details/53893948 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+Spri ...

  7. LeetCode 294. Flip Game II

    原题链接在这里:https://leetcode.com/problems/flip-game-ii/ 题目: You are playing the following Flip Game with ...

  8. python 装饰器之应用示例

    import time import hashlib import pickle import threading #装饰函数缓存应用 cache ={} def is_obsolete(entry, ...

  9. win32窗口程序分析

    1.分析消息的附加参数 例如:为了查看程序处理了哪些消息   在回调函数中调用输出函数,在控制台中输出消息的值:

  10. Linux gdb分析core dump文件

    文章目录1. coredump1.1 coredump简介1.2 coredump的文件存储路径1.3 coredump产生的条件1.4 coredump产生原因2. 测试生成coredump1. c ...