【Demo】教你实现下拉刷新

article/2025/10/26 18:20:06

前言

第三方库很常见,我们开发需求的时候经常会用到下拉刷新组件,如果要我们自己实现下拉刷新该如何实现尼?

效果

实现原理

1、监听 touchstart事件记录初始startY
2、监听 touchmove事件 e.touches[0].pageY - startY得到 deltaY, 再通过transform: translateY(deltaY) 来拖动内容
3、监听 touchend 事件 触发回调

代码

1、html

<div class="pull-refresh"><div id="pull-refresh-container"><div class="pull-refresh-head"><p class="pull-refresh-text"></p></div><div class="pull-refresh-content"><ul><li>1</li>   <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul></div></div>
</div>

2、css

html, body {width: 100%;height: 100vh;padding: 0;margin: 0;background-color: white;
}ul {display: block;list-style-type: disc;margin-block-start: 0;margin-block-end: 0;margin-inline-start: 0px;margin-inline-end: 0px;padding-inline-start: 0px;
}.pull-refresh {width: 100%;height: 100%;
}#pull-refresh-container {position: relative;width: 100%;height: 100%;background-color: #F5F5F5;
}.pull-refresh-head {position: absolute;left: 0;width: 100%;transform: translateY(-100%);
}.pull-refresh-text {text-align: center;
}.pull-refresh-content {text-align: left;padding: 24px;
}

3、js

(function(){var refreshContainer = document.getElementById("pull-refresh-container"),refreshTxt = document.querySelector('.pull-refresh-text'),startY = 0, deltaY = 0;refreshContainer.addEventListener('touchstart',function(e){startY = e.touches[0].pageY;refreshContainer.style.transition = 'transform 0s';}, false);refreshContainer.addEventListener('touchmove',function(e){e.preventDefault();deltaY = e.touches[0].pageY - startY;if(deltaY > 0) {refreshTxt.innerText = '下拉刷新';refreshContainer.style.transform = 'translateY('+ deltaY + 'px)';if(deltaY > 60) {refreshTxt.innerText = '释放刷新';}}}, false);refreshContainer.addEventListener('touchend',function(e){refreshContainer.style.transition = 'transform 0.5s ease 0s';if(deltaY > 60) {refreshContainer.style.transform = 'translateY(60px)';refreshTxt.innerText = '加载中...';setTimeout(function(){refreshContainer.style.transform = 'translateY(0px)';refreshTxt.innerText = '刷新成功';}, 2000)} else {refreshContainer.style.transform = 'translateY(0px)';}startY = 0;deltaY = 0;}, false);})()

在线预览

点我预览


http://chatgpt.dhexx.cn/article/ZPeVD6JE.shtml

相关文章

如何实现上拉加载,下拉刷新

答&#xff1a;下拉刷新和上拉加载这两种交互⽅式通常出现在移动端中 本质上等同于PC⽹⻚中的分⻚&#xff0c;只是交互形式不同 开源社区也有很多优秀的解决⽅案&#xff0c;如 iscroll 、 better-scroll 、 pulltorefresh.js 库等等 这些第三⽅库使⽤起来⾮常便捷 我们通…

jira使用教程管理项目

添加工作流 1.点击项目设置 2.点击工作流&#xff0c;然后点击切换方案 3.进入切换方案界面之后&#xff0c;点击工作流&#xff0c;然后点击添加工作流 4.输入工作流名称&#xff0c;点击添加 5.编辑工作流 可以导出工作流供别人使用 编辑之前添加的工作流 提交bug

今日记录:JIRA使用指南

JIRA流程与使用指南 学习总结&#xff1a; 什么是JIRA&#xff1f;为什么要用任务管理工具&#xff1f;JIRA基础流程 ① 什么是JIRA&#xff1f; JIRA是一个项目与事务管理工具&#xff0c;被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪和敏捷管理等工作领…

JIRA-使用教程_概念

博客概要 JIRA是一个非常强大的项目与事务跟踪工具&#xff0c;博主在具体工作使用中对它爱不释手 &#xff0c;发现它功能全面、配置灵活、扩展丰富…反正优点一大堆&#xff01;好东西嘛就要拿出来&#xff0c;大家一起分享~本博文先简单介绍JIRA相关的基本信息。 文章目录 博…

Confluence+Jira使用

Jira过滤器的使用方式&#xff1a; project MCU AND issuetype 测试用例 AND component GPIO ORDER BY summary ASC实例&#xff1a;

jira使用教程 一(从官方文档理解)

JIRA官方说明 JIRA使用教程 blog QA: jira 如何关联到Gerrit Reviews JIRA Concepts - Issues Aim JIRA tracks issues, which can be bugs, feature requests, or any other tasks you want to track. JIRA可以跟踪问题&#xff0c;可以是bug、特性请求或任何其他你想跟踪…

JIRA-使用教程_问题单-新建

博客概要 简单分享新增并查看一个问题单的步骤~ 文章目录 博客概要《JIRA-使用教程》_总目录问题单-新建1.进入项目2.新建唤起3.填写新建弹窗4.查看问题 总结 《JIRA-使用教程》_总目录 文章超链接&#xff1a;https://blog.csdn.net/qq_41386332/article/details/108865809 …

项目管理工具——Jira使用和配置

摘要 链接&#xff1a;https://pan.baidu.com/s/1_PgOuOWsS1lnHIIyI0y4pA 提取码&#xff1a;v0dy 本博文将介绍在软件开发中的常用的软件管理工具。Jira是Atlassian公司出品的一款事务管理软件&#xff08;缺陷管理类的软件&#xff09;。无论是“需求”&#xff0c;还是“…

命令进入mysql创建jira_JIRA使用教程:连接数据库—MySQL_MySQL

本文主要介绍如何连接JIRA到mysql数据库。 首先 查看MySQL的版本是否支持&#xff0c;查阅 支持的平台 。 如果是转移JIRA到另一台服务器&#xff0c;先导出数据为XML备份&#xff0c;然后将旧数据库中的数据传输到新的数据库。 如果你打算用同一个MySQL服务器安装Confluence和…

jira oracle安装,JIRA使用教程:连接数据库—Oracle

本文主要介绍连接JIRA到Oracle数据库。 首先 检查Oracle的版本是否支持&#xff0c;详见支持的平台。 如果是转移JIRA到另一台服务器&#xff0c;先导出数据为XML备份&#xff0c;然后将旧数据库中的数据传输到新的数据库。 在开始前关闭JIRA&#xff0c;除非你正在运行Setup W…

命令进入mysql创建jira_JIRA使用教程:连接数据库―MySQL

本文主要介绍如何连接JIRA到mysql数据库。 首先 查看MySQL的版本是否支持&#xff0c;查阅 支持的平台 。 如果是转移JIRA到另一台服务器&#xff0c;先导出数据为XML备份&#xff0c;然后将旧数据库中的数据传输到新的数据库。 如果你打算用同一个MySQL服务器安装Confluence和…

Jira使用浅谈篇一

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

jira软件 linux 安装,JIRA使用教程:在Linux上安装JIRA

本指南主要介绍如何使用“Linux Installer”在Linux上安装一个新的JIRA。如果要升级请参阅JIRA升级指南。 申请试用请咨询在线客服。 注意&#xff1a;一些反病毒或其他互联网安全工具可能会干扰JIRA的安装过程&#xff0c;并阻止安装过程成功完成。为了避免遇到这样的情况&…

jira的详细使用教程

jira的详细使用教程,1,Jira- 是一款缺陷管理软件工具,用其进行缺陷的管理和跟踪。(是B/S架构的软件) 2,主要涉及的角色: 3,具体工作流 添加工作流 1.点击项目设置 2.点击工作流,然后点击切换方案 3.进入切换

命令进入mysql创建jira_JIRA使用教程

连接数据库—MySQL 本文主要介绍如何连接JIRA到MySQL数据库。 相关资料推荐&#xff1a; 首先查看MySQL的版本是否支持&#xff0c;查阅支持的平台。 如果是转移JIRA到另一台服务器&#xff0c;先导出数据为XML备份&#xff0c;然后将旧数据库中的数据传输到新的数据库。 如果你…

Jira使用教程-不古出品

Jira使用教程-不古出品 Jira 简要概述关于 Jira关键术语事务项目板工作流敏捷 Jira 入门教程&#xff1a;6 个基本步骤第 1 步 – 创建项目第 2 步 – 选择模板项目类型 第 3 步 - 设置列第 4 步 – 创建事务第 5 步 – 邀请团队第 6 步 - 推动工作进展 Jira 最佳实践Jira 项目…

jira操作流程

一、目的与范围 1.1目的 1.规范jira在项目管理过程中的使用&#xff0c;保证项目任务信息完整&#xff0c;能全面、实时地反馈项目实际进度及状态。 2.明确jira使用过程中职责&#xff0c;为各级主管在项目管理过程中实施检查提供依据。 1.2范围 在立项之初确定纳入jira管…

缺陷管理工具 之JIRA使用教程

1&#xff0c;Jira - 是一款缺陷管理软件工具&#xff0c;用其进行缺陷的管理和跟踪。&#xff08;是B/S架构的软件&#xff09; 2&#xff0c;主要涉及的角色&#xff1a; 管理人员&#xff1a;创建项目&#xff0c;创建人员&#xff08;给项目中的人员分配账号&#xff09; …

生存分析彭非_生存数据的分析方法 生存分析数据特点

如何用spss做生存分析&#xff1f; 下面用一个例子来说明SPSS操作方法。操作步骤&#xff1a; 1点击进入Cox主对话框&#xff0c;如下&#xff0c;将time选入“时间”框&#xff0c;将代表删失的censor变量选入“状态”框&#xff0c;其余分析变量选入“协变量”框。“方法”下…

生存分析第一课: censoring 、truncation、survival function、hazard function

Introduction to censoring and truncation Q1: Censoring? Truncation? 1.Censoring 删失: 由于某些随机原因导致观察没有完成,而这些导致删失的原因必须和我们感兴趣的事件所独立【比如关心癌症病人生存时间,某个志愿者因为车祸等其他随机原因死亡,他的死亡发生和我们关…