微信小程序之下拉刷新事件、上拉触底事件和案例

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

文章目录

  • 前言
  • 一、页面事件 - 下拉刷新事件
    • 1、什么是下拉刷新
    • 2、启用下拉刷新
    • 3、配置下拉刷新窗口的样式
    • 4、监听页面的下拉刷新事件
    • 5、停止下拉刷新的效果
  • 二、页面事件 - 上拉触底事件
    • 1、什么是上拉触底
    • 2、监听页面的上拉触底事件
    • 3、配置上拉触底距离
  • 三、页面事件 - 上拉触底案例
    • 1、案例的实现步骤
    • 2、步骤1 - 定义获取随机颜色的方法
    • 3、步骤2 - 在页面加载时获取初始数据
    • 4、步骤3 - 渲染 UI 结构并美化页面效果
    • 5、步骤4 - 上拉触底时获取随机颜色
    • 6、步骤5 - 添加 loading 提示效果
    • 7、步骤6 - 对上拉触底进行节流处理
  • 总结


前言

一、页面事件 - 下拉刷新事件
1、什么是下拉刷新
2、启用下拉刷新
3、配置下拉刷新窗口的样式
4、监听页面的下拉刷新事件
5、停止下拉刷新的效果
二、页面事件 - 上拉触底事件
1、什么是上拉触底
2、监听页面的上拉触底事件
3、配置上拉触底距离
三、页面事件 - 上拉触底案例
1、案例的实现步骤
2、步骤1 - 定义获取随机颜色的方法
3、步骤2 - 在页面加载时获取初始数据
4、步骤3 - 渲染 UI 结构并美化页面效果
5、步骤4 - 上拉触底时获取随机颜色
6、步骤5 - 添加 loading 提示效果
7、步骤6 - 对上拉触底进行节流处理


一、页面事件 - 下拉刷新事件

1、什么是下拉刷新

下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为。

2、启用下拉刷新

启用下拉刷新有两种方式:

  • 全局开启下拉刷新
    • 在 app.json 的 window 节点中,将 enablePullDownRefresh 设置为 true
  • 局部开启下拉刷新
    • 在页面的 .json 配置文件中,将 enablePullDownRefresh 设置为 true

在实际开发中,推荐使用第 2 种方式,为需要的页面单独开启下拉刷新的效果。

3、配置下拉刷新窗口的样式

在全局或页面的 .json 配置文件中,通过 backgroundColor 和 backgroundTextStyle 来配置下拉刷新窗口的样式,其中:

  • backgroundColor 用来配置下拉刷新窗口的背景颜色,仅支持16 进制的颜色值
  • backgroundTextStyle 用来配置下拉刷新 loading 的样式,仅支持 dark 和 light
  "enablePullDownRefresh": true,"backgroundColor": "#ffffff","backgroundTextStyle": "dark"

在这里插入图片描述

4、监听页面的下拉刷新事件

在页面的 .js 文件中,通过 onPullDownRefresh() 函数即可监听当前页面的下拉刷新事件。
例如,在页面的 wxml 中有如下的 UI 结构,点击按钮可以让 count 值自增 +1:

<view>count值为:{{count}}</view>
<button bindtap="countAdd">+1</button>
data: {count:0},
countAdd(){this.setData({count:this.data.count+1})
},

在这里插入图片描述
在触发页面的下拉刷新事件的时候,如果要把 count 的值重置为 0,示例代码如下:

  onPullDownRefresh() {this.setData({count:0})},

5、停止下拉刷新的效果

当处理完下拉刷新后,下拉刷新的 loading 效果会一直显示,不会主动消失,所以需要手动隐藏下拉刷新的 loading 效果。此时,调用 wx.stopPullDownRefresh() 可以停止当前页面的下拉刷新。示例代码如下:

  onPullDownRefresh() {this.setData({count:0})//当数据重置成功之后,调用此函数,关闭下拉刷新效果wx.stopPullDownRefresh()},

在这里插入图片描述

二、页面事件 - 上拉触底事件

1、什么是上拉触底

上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为。

2、监听页面的上拉触底事件

在页面的 .js 文件中,通过 onReachBottom() 函数即可监听当前页面的上拉触底事件。示例代码如下:

  onReachBottom() {console.log('触发了上拉触底的事件')},

3、配置上拉触底距离

上拉触底距离指的是触发上拉触底事件时,滚动条距离页面底部的距离。
可以在全局或页面的 .json 配置文件中,通过 onReachBottomDistance 属性来配置上拉触底的距离。
小程序默认的触底距离是 50px,在实际开发中,可以根据自己的需求修改这个默认值。
在这里插入图片描述

三、页面事件 - 上拉触底案例

1、案例的实现步骤

  • 定义获取随机颜色的方法
  • 在页面加载时获取初始数据
  • 渲染 UI 结构并美化页面效果
  • 在上拉触底时调用获取随机颜色的方法
  • 添加 loading 提示效果
  • 对上拉触底进行节流处理

2、步骤1 - 定义获取随机颜色的方法

js代码

  data: {colorList:[], //随机颜色的列表},

js代码

  getColors(){//获取随机颜色的方法wx.request({url: 'https://applet-base-api-t.itheima.net/api/color',method:'get',success:({data:res})=>{this.setData({colorList:[...this.data.colorList,...res.data]//将获取的新数组和原数组通过展开运算符进行拼接//如果出错了,改成  colorList: this.data.colorList.concat(res.data)})}})},

3、步骤2 - 在页面加载时获取初始数据

js代码

  /*** 生命周期函数--监听页面加载*/onLoad(options) {this.getColors()},

4、步骤3 - 渲染 UI 结构并美化页面效果

wxml代码

<view wx:for="{{colorList}}" wx:key="index" class="num-item" style="background-color: rgba({{item}});">{{item}}</view>

wxss代码

.num-item{border: 1px solid #efefef;border-radius: 8rpx;line-height: 200rpx;margin: 15rpx;text-align: center;text-shadow: 0rpx 0rpx 5rpx #fff;box-shadow: 1rpx 1rpx 6rpx #aaa;
}

5、步骤4 - 上拉触底时获取随机颜色

js代码

  /*** 页面上拉触底事件的处理函数*/onReachBottom() {//调用获取随机颜色的方法this.getColors()},

6、步骤5 - 添加 loading 提示效果

js代码

  getColors(){//获取随机颜色的方法//显示Loading效果wx.showLoading({title: '数据加载中...',})wx.request({url: 'https://applet-base-api-t.itheima.net/api/color',method:'get',success:({data:res})=>{this.setData({colorList:[...this.data.colorList,...res.data]//将获取的新数组和原数组通过展开运算符进行拼接//如果出错了,改成  colorList: this.data.colorList.concat(res.data)})},complete:()=>{wx.hideLoading() //隐藏Loading效果this.setData({isLoding:false})}})},

7、步骤6 - 对上拉触底进行节流处理

  • 在 data 中定义 isloading 节流阀
    • false 表示当前没有进行任何数据请求
    • true 表示当前正在进行数据请求
  • 在 getColors() 方法中修改 isloading 节流阀的值
    • 在刚调用 getColors 时将节流阀设置 true
    • 在网络请求的 complete 回调函数中,将节流阀重置为 false
  • 在 onReachBottom 中判断节流阀的值,从而对数据请求进行节流控制
    • 如果节流阀的值为 true,则阻止当前请求
    • 如果节流阀的值为 false,则发起数据请求

js代码

  data: {colorList:[], //随机颜色的列表isLoding:false},getColors(){//获取随机颜色的方法this.setData({isLoding:true})//显示Loading效果wx.showLoading({title: '数据加载中...',})wx.request({url: 'https://applet-base-api-t.itheima.net/api/color',method:'get',success:({data:res})=>{this.setData({colorList:[...this.data.colorList,...res.data]//将获取的新数组和原数组通过展开运算符进行拼接//如果出错了,改成  colorList: this.data.colorList.concat(res.data)})},complete:()=>{wx.hideLoading() //隐藏Loading效果this.setData({isLoding:false})}})},/*** 页面上拉触底事件的处理函数*/onReachBottom() {if(this.data.isLoding) return//调用获取随机颜色的方法this.getColors()},

总结

以上就是微信小程序之下拉刷新事件、上拉触底事件和案例的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

趣学Python算法100例-1.1 抓交通肇事犯

1&#xff0e;问题描述 一辆卡车违反交通规则&#xff0c;撞人后逃跑。现场有三人目击该事件&#xff0c;但都没有记住车号&#xff0c;只记下了车号的一些特征。甲说&#xff1a;牌照的前两位数字是相同的&#xff1b;乙说&#xff1a;牌照的后两位数字是相同的&#xff0c;但…

vue核心知识点

一、Vue基础知识点总结 开发vue项目的模式有两种&#xff1a; 基于vue.js&#xff0c;在html中引入vue.js&#xff0c;让vue.js管理div#app元素。基于脚手架环境&#xff1a;通过vue脚手架环境可以方便的创建一个通用的vue项目框架的模板&#xff0c;在此基础之上开发vue项目…

Python面向对象编程:探索代码的结构之美

文章目录 一、引言二、为什么学习面向对象编程2.1 提高代码的可维护性&#xff1a;通过封装、继承和多态实现模块化设计2.2 提升代码的复用性&#xff1a;通过类和对象的创建实现代码的重用 三、类和对象的基本概念3.1 类和对象的定义和关系&#xff1a;类是对象的模板&#xf…

【劳德巴赫 Trace32 高阶系列 3 -- trace32 svf 文件操作命令】

请阅读【嵌入式开发学习必备专栏 之 Trace32 系列 】 文章目录 Trace32 SVF 文件操作命令JTAG.PROGRAM.autoJTAG.PROGRAM.SVF命令参数介绍IRPREIRPOSTDRPREDRPOSTInitStateIgnoreTDOVerbose使用示例Trace32 SVF 文件操作命令 JTAG.PROGRAM.auto Format: JTAG.PROGRAM.</

elk之安装和简单配置

写在前面 本文看下elk的安装和简单配置&#xff0c;安装我们会尝试通过不同的方式来完成&#xff0c;也会介绍如何使用docker&#xff0c;docker-compose安装。 1&#xff1a;安装es 1.1&#xff1a;安装单实例 下载es安装包 在这里 下载&#xff0c;下载后解压到某个目录…

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)

在微服务项目迭代的过程中&#xff0c;不可避免需要上线&#xff1b;上线对应着部署&#xff0c;或者升级部署&#xff1b;部署对应着修改,修改则意味着风险。 传统的部署都需要先停止旧系统&#xff0c;然后部署新系统&#xff0c;之后需要对新系统进行全面的功能测试&#xf…

用STM32手搓一个体温计

前言 市面上大多额温计、测温计精度偏差太大。 而水银温度计&#xff0c;等待时间又太久。 因此就产生了用STM32自己做一个——精度高、便宜、测速快 的产品级 温度仪/体温计的想法。 01 这个温度仪的亮点&#xff1f; ”1精度高&#xff0c;误差小于0.1度 2带有显示屏&a…

【buuctf Reverse】[GXYCTF2019]luck_guy wp

[GXYCTF2019]luck_guy https://buuoj.cn/challenges#[GXYCTF2019]luck_guy 只有一个可执行文件&#xff0c;IDA 64位直接干 进main函数&#xff0c;F5反编译&#xff0c;看主要处理函数&#xff0c;跳转进去 在这里看到。flag是由f1和f2拼出来的&#xff0c;f1在汇编中有…

STM32读取MPU6050数据并通过角度值控制舵机运动(STM32、GY-521 MPU6050、SG90舵机、MG946舵机)

通过STM32F103C8T6读取MPU6050数据控制舵机运动&#xff08;STM32、GY-521 MPU6050、SG90舵机、MG946舵机&#xff09; 最终现象一、MPU6050数据读取二、舵机控制原理①什么是PWM&#xff1f;②STM32F103C8T6如何生成PWM&#xff1f;③控制舵机需要什么样的PWM波&#xff1f; 三…

飞桨paddlespeech语音唤醒推理C INT8 定点实现

前面的文章&#xff08;飞桨paddlespeech语音唤醒推理C定点实现&#xff09;讲了INT16的定点实现。因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现&#xff0c;于是我又做了INT8的定点实现。 实现前做了一番调研。量化主要包括权重值量化和激活值量化。权重值由于较小且…

微信活动投票小程序源码系统:自主创建活动小程序带完整的安装代码包以及搭建教程

微信小程序的日益普及&#xff0c;越来越多的企业和个人开始关注如何利用小程序进行活动推广和用户互动。在这个背景下&#xff0c;微信活动投票小程序源码系统应运而生。这款源码系统旨在帮助用户快速创建自己的活动投票小程序&#xff0c;降低技术门槛&#xff0c;提高开发效…

主从数据库MySQL服务重启步骤与注意事项

主从数据库MySQL服务重启步骤与注意事项 实验环境&#xff1a; 172.20.26.34 &#xff08;主应用服务器&#xff09; 172.20.26.26 &#xff08;备应用服务器&#xff09; 172.20.26.37 &#xff08;主库服务器&#xff09; 172.20.26.38 &#xff08;从库服务器&…

迅为3588开发板Ubuntu安装Docker

在使用迅为 RK3588 开发板的时候&#xff0c;我们一般采用的是虚拟机安装 Ubuntu20.04 来编译 Android 源码或者 linux 源码&#xff0c;但是编译源码最让人头疼的是主机环境问题。假如我手上有很 多块开发板&#xff0c;每个开发板都使用不同的编译环境&#xff0c;而我本地电…

Java 类的加载流程

一、类的加载 指的是将类的.class 文件中的二进制 数据读入到内存中&#xff0c;将其放在运行时数据区的方法区内&#xff0c;然后在堆区创 建一个 java.lang.Class 对象&#xff0c;用来封装类在方法区内的数据结构。 类从被加载到虚拟机内存中开始&#xff0c;到卸载出内…

自己实现的小功能

小功能实现 2024/1/31 问题一&#xff1a; 将文本模式的csv文件作为表编辑之后&#xff0c;先要再变回来。找了5分钟都没找到&#xff0c;去网上搜也没搜到 解决方案 复制一份&#xff0c;对没错。 不是把表遍历一遍&#xff0c;重新将数据写入。 3.5给的答案就是重新写入…

C#小结:ScottPlot 5.0在VS2022桌面开发的应用(以winform为例)

目录 一、官网文档地址 二、在VS2022中安装Scottplot 三、拖动Scottplot 四、使用Scottplot 五、效果图 一、官网文档地址 官网地址&#xff1a;ScottPlot 5.0 食谱 本文内容来自于官网&#xff0c;选取了官网的一些比较好用的功能展示&#xff0c;如需学习更多功能&a…

深度学习(9)--pydot库和graphviz库安装流程详解

目录 一.pydot库安装 二.graphviz库安装 一.pydot库安装 pydot的安装可直接在编译器安装相关包&#xff0c;以PyCharm举例&#xff1a; 如果搜索可用软件包显示为空&#xff0c;记得在此处把使用Conda软件包管理器”点亮 二.graphviz库安装 点击链接下载安装包graphviz-2.38…

机器学习复习(3)——分类神经网络与drop out

完整的神经网络 以分类任务为例&#xff0c;神经网络一般包括backbone和head&#xff08;计算机视觉领域&#xff09; 下面的BasicBlock不是一个标准的backbone,标准的应该是复杂的CNNs构成的 Classfier是一个标准的head,其中output_dim表示分类类别&#xff0c;一般写作num…

嵌入式——模拟/数字转换器(ADC)补充

目录 一、ADC简介 二、ADC功能 1.电压输入范围 2.输入通道 3. 转换顺序 &#xff08;1&#xff09;规则序列 &#xff08;2&#xff09; 注入序列 4.触发源 5. 转换时间 &#xff08;1&#xff09; ADC时钟 &#xff08;2&#xff09; 采样时间 6. 数据寄存器 &am…

抗体亲和力成熟制备高亲和力抗体-泰克生物

1.什么是抗体亲和力&#xff1f; 抗体亲和力是指抗体与抗原表位或抗原决定簇的结合强度&#xff0c;其实质是一种包含氨基酸间结合力——氢键、疏水性作用力等的非共价作用力。抗体亲和力的强弱取决于抗体与所用抗原表位的配合程度&#xff0c;其决定因素包括接触面积的大小、亲…