前言

由于官方提供的onPullDownRefresh下拉刷新,在我们自定义导航栏的情况下会把加载动画遮住,看了官方解释也是不能调动加载动画的位置,就只能是自定义下拉刷新了

正文

wxml

 <scroll-view scroll-y style="height: 100ch;" enable-back-to-top="true" bindscrolltolower='onReachBottom' <!-- 监听布局touch事件 --><view class='column' bindtouchstart='start' bindtouchend='end' bindtouchmove='move'><!-- //刷新状态view --><block wx:if="{{refreshBatch}}"><view style='height:{{hei}}px;background:gray' class='lessNo'>{{desc}}</view></block><view wx:for="{list}">正文内容</view></view>
</scroll-view>

js

start(e) {this.setData({refreshBatch:true})//记录手指触摸是的y坐标sy = e.touches[0].clientY   console.log('开始触摸 sy : ' + sy + ' scrolltop : ' + this.data.scrolltop)
},
move(e) {//计算手指滑动的距离var delta = e.touches[0].clientY - syconsole.log('delta : ' + delta)//scorll-view滑动到顶部且继续向上滑动时,走scorll-view滑动流程if(this.data.hei <= 0 && delta <= 0){return}//scorll-view已经滑动到顶部,继续下拉进入下拉状态if (this.data.scrolltop <= 0){if (this.data.isindrag == false){this.setData({isindrag: true})}var tempdelta = 0console.log('hei : ' + this.data.hei)if(delta > 0){//手指向下滑动if (this.data.hei > 50) {//触发阈值,更改状态this.setData({desc: '松开刷新'})tempdelta = this.data.hei + delta / (this.data.hei - 50)//增大下拉阻尼感} else {this.setData({desc: '下拉刷新'})//手指移动未到阈值,按正常滑动增加高度tempdelta = this.data.hei + delta}} else {//手指向上滑动tempdelta = this.data.hei + delta//刷新状态view最小为0if(tempdelta <= 0){tempdelta = 0}this.setData({desc: '下拉刷新'})}//滑动完成设置刷新view高度this.setData({hei: tempdelta})}//每次滑动事件后记录y坐标sy = e.touches[0].clientY
},
end(e) {var that = thisconsole.log('手指离开')//控制刷新文字的显示隐藏this.setData({refreshBatch:false})//手指离开时,如果阈值大于等于50,则触发刷新if(this.data.hei >= 50){this.setData({desc: '正在刷新...'})this.setData({hei: 50})//模拟耗时操作,2秒后恢复正常状态setTimeout(function () {sy = 0that.setData({desc: '下拉刷新',hei: 0,isindrag: false,scrolltop: 0})}, 2000)this.setData({pageNo:1,    //更新单前页refreshBatch:true})//加载内容信息this.loadComment();}else{//未下拉到阈值,松开时则收起刷新viewsy = 0that.setData({desc: '下拉刷新',hei: 0,isindrag: false,scrolltop: 0})}
},
scorll(e) {//未进入下拉状态时,记录scorll-view滑动距离顶部的距离var st = e.detail.scrollTopconsole.log('滚动 st : '+st)if (this.data.isindrag == false){this.setData({scrolltop: st})}
}

原文出处:https://www.it610.com/article/1282381264719986688.htm

小程序自定义下拉刷新相关推荐

  1. ios微信小程序下拉刷新怎么配_[wx]微信小程序自定义下拉刷新

    需求: 在小程序内存在列表等形式的页面内增加下拉刷新功能,提高用户体验感,加强界面操作与交互性: 实现方法: 1.小程序提供的下拉刷新(无法自定义刷新动画) 在页面设置内开启下拉(单独页面设置): { ...

  2. 安卓小程序 自定义下拉刷新_支付宝小程序设计设计指南

    本篇<设计指南>从7个维度分析: 导航(架构清晰,指引明确).界面(明辨主次,重点明确).流程(流程明确,避免打扰).引导(操作向导,降低成本).反馈(反馈及时,减少焦虑).容错(用户可控 ...

  3. hooks taro 下拉刷新_小程序自定义下拉刷新(Taro版)

    在考虑实现自定义的下拉刷新组件的时候,首先要明确,这个算是一种hack方案.并不是说自定义的有多么好,反而自定义的下拉刷新在android下会有细微的卡顿(我这种实现方式).所以尽量还是用小程序自带的 ...

  4. 微信小程序实现下拉刷新

    微信小程序实现下拉刷新 配置json文件 在js文件中写下拉刷新方法 注意 配置json文件 如果需要全局使用下拉刷新就在app.json中设置 如果为单页面使用则在页面json设置即可 " ...

  5. 微信小程序界面下拉刷新实现方法

    微信小程序中,通过下拉刷新页面是基本操作,在当前页面排满的情况下继续下拉加载更多内容.小程序和网页都可以实现这一功能,不同的是小程序界面有能实现下拉刷新功能的API,只需从系统调用即可. 通过查看微信 ...

  6. 微信小程序 五 下拉刷新

    微信小程序提供了原声的下拉刷新,三个小点的下拉刷新. 在.json 中写 {"enablePullDownRefresh": true, //开启下拉刷新"backgro ...

  7. 微信小程序OnPullDownRefresh下拉刷新不触发问题

    小程序中写了onPullDownRefresh方法之后不生效可能有以下几种方面的原因: 没有配置enablePullDownRefresh 需要在对应页面的json文件中设置enablePullDow ...

  8. vant实现下拉刷新和上拉加载_微信小程序 - 实现下拉刷新、上拉加载

    在小程序开发中使用下拉刷新和上拉加载非常多,比如常用的展示型首页,而实现这个功能有两种形式,第一种是使用 scroll-view 组件,第二种是不使用 scroll-view 组件而让整个页面刷新,那 ...

  9. taro开发微信小程序禁止下拉刷新(ios下拉出现空白问题)

    一.问题描述 最近用tarojs在做一个小程序项目时,首页需要禁止下拉刷新,于是在page.json里面添加了这段话 "enablePullDownRefresh":false 全 ...

  10. 微信小程序实现下拉刷新功能

    第一步.在app.json文件里把enablePullDownRefresh设置为true 第二步.在需要下拉刷新页面的js文件里写onPullDownRefresh:function(){}这个方法 ...

最新文章

  1. 编译vim-8.2并配置jedi-vim插件
  2. 一小时学会用 Opencv 做贪吃蛇游戏(Python版)
  3. 让学习linux变成一种习惯
  4. linux jdk免安装配置,生产环境免安装jdk的使用方法
  5. linux追加内核参数,Linux设置内核参数的方法
  6. 520 钻石争霸赛 7-5 大勾股定理 (数学)
  7. 【.Net】C# 将Access中时间段条件查询的数据添加到ListView中
  8. scrum master_从Scrum Master到工程副总裁:职称为何重要
  9. **PHP中替换换行符
  10. 苹果,把充电器还给我们!京沪法学生状告苹果公司欺诈
  11. python容量变化类型有哪些_python基础数据类型补充以及编码的进阶
  12. 为 Notepad++ 安装 NppFTP 插件,查看修改虚拟机上的文本文件
  13. python网络编程基础知识_python网络编程基础
  14. bzoj 1058: [ZJOI2007]报表统计(set+multiset)
  15. 随机游走问题的神奇应用(二)
  16. 使用SoapUI测试Web Service
  17. docker--强制删除none的image镜像
  18. SQL查询语句精华大全
  19. java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
  20. python怎么用圆周率_用python程序求圆周率到任意位

热门文章

  1. HTML怎么进行文本居中对齐,css文字怎么居中对齐?
  2. 黑色的cms商城网站后台管理模板——后台
  3. java技术管理的简历_基于javaweb个人简历生成及管理系统.doc
  4. 新能源外地车进京限行限号政策是怎样的?
  5. win10通过VMware使用教程
  6. ubuntu 截图快捷键设置
  7. 11gR2数据库RMAN完全恢复数据库
  8. 查看视频文件格式信息的工具--MediaInfo
  9. 学习笔记(01):10小时掌握区块链开发教程-2小时构建以太坊智能合约-1
  10. vue使用jsMind(思维导图)