html仿照聊天下拉刷新,h5实现下拉刷新,模拟原生下拉刷新,封装组件

本文介绍了如何使用HTML和JavaScript封装一个自定义的下拉刷新组件,模拟原生应用的下拉刷新效果。通过监听touchstart、touchmove和touchend事件,结合CSS样式变化,实现下拉显示提示、释放触发刷新及加载中的状态切换。组件可自定义样式,适用于嵌入原生App的H5页面。
摘要由CSDN通过智能技术生成

上一篇,我们实现了h5 实现向左平滑,出现按钮操作,封装组件,模拟购物车左滑删除,现在我们将要实现一个下拉刷新的组件,模拟原生下拉刷新的操作。这对h5手势的要求也是蛮高的,接下来,我们就一步一步的实现下拉刷新的操作。

需求背景

在原生app中嵌入h5页面,有些页面需要下拉刷新操作,一般比较简单的方法就是使用其他框架封装的下拉刷新,比如说mint-ui框架中的loadmore组件就可以实现下拉刷新操作,但是样式上可能就和整个app的风格不一致了。既然都是封装好的组件,那为什么我们不能自己封装一个组件,并且样式风格由我们自己来定了。

基础知识

touchstart事件:事件对象event,包含手指触摸的位置

touchmove事件:事件对象event,包含手指滑动的位置

touchend事件:事件对象event,包含手指离开屏幕的位置

封装组件

1. 首先我们先考虑下拉刷新的html结构

下拉刷新的文字有三种状态,下拉刷新=>释放刷新=>加载中,下面代码中刷新距离是自己定义的。

下拉即可刷新:页面下拉距离 < 刷新的距离

释放即可刷新:页面下拉距离 >= 刷新的距离

加载中:页面下拉距离 >= 刷新距离 && 手指释放

2. css样式

首先,下拉刷新的文字部分,一开始隐藏的,下拉出现

其次,slot部分的样式,我们可以忽略

.pull-refresh {

height: calc(~'100vh - 50px');

.pull-refreshing-text {

margin-top: -50px;

line-height: 50px;

height: 50rem;

font-size:14px;

color: #5a5a5a;

text-align: center;

}

}

最后下拉刷新的三种状态,我们定义一个下拉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值