【转】html5实现移动端下拉刷新(原理和代码)

移动端下拉刷新与加载更多交互实现完整方案 下拉刷新与加载更多是移动端列表交互的核心组成部分,广泛应用于新闻资讯、社交动态和电商商品页等场景。其本质是通过用户自然的滑动行为触发数据更新或增量获取,提升内容浏览的连续性与操作直觉性。在大多数情况下,浏览器会对touchmove自动启用默认滚动行为。然而,当下拉刷新功能需要接管滑动控制权时,就必须显式调用来抑制默认动作。否则,页面会在用户尚未达到刷新阈值时就开始滚动内容,破坏交互完整性。但直接全局阻止存在风险:例如在非顶部区域也禁用滚动,会导致用户体验断裂。因此,合理的做法是。 阅读详情

这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Document</title>

<style type="text/css">

    html,

    body,

    header,

    p,

    main,

    p,

    span,

    ul,

    li {

        margin: 0;

        padding: 0;

    }



    #refreshContainer li {

        background-color: #eee;

        margin-bottom: 1px;

        padding: 20px 10px;

    }



    .refreshText {

        position: absolute;

        width: 100%;

        line-height: 50px;

        text-align: center;

        left: 0;

        top: 0;

        transform: translateY(-50px);

    }

</style>
<main class="parent">

    <p class="refreshText"></p>

    <ul id="refreshContainer">

        <li>111</li>

        <li>222</li>

        <li>333</li>

        <li>444</li>

        <li>555</li>

        <li>111</li>

        <li>222</li>

        <li>333</li>

        <li>444</li>

        <li>555</li>

        <li>111</li>

        <li>222</li>

        <li>333</li>

        <li>444</li>

        <li>555</li>

    </ul>

</main>

<script type="text/javascript">

    window.onload = function(){

        //1.获取到列表的dom,刷新显示部分的dom,列表父容器的dom

        let container = document.querySelector('#refreshContainer');

        let refreshText = document.querySelector('.refreshText');

        let parent = document.querySelector('.parent');



        //2.定义一些需要常用的变量

        let startY = 0;//手指触摸最开始的Y坐标

        let endY = 0;//手指结束触摸时的Y坐标

        

        //3.给列表dom监听touchstart事件,得到起始位置的Y坐标

        parent.addEventListener('touchstart',function(e){

            startY = e.touches[0].pageY;

        });

        //4.给列表dom监听touchmove事件,当移动到一定程度需要显示上面的文字

        parent.addEventListener('touchmove',function (e) { 

            if(isTop() && (e.touches[0].pageY-startY) > 0){

                console.log('下拉了');

                refreshText.style.height = "50px";

                parent.style.transform = "translateY(50px)";

                parent.style.transition = "all ease 0.5s";

                refreshText.innerHTML = "释放立即刷新...";

            }

        });

        //5.给列表dom监听touchend事件,此时说明用户已经松开了手指,应该进行异步操作了

        parent.addEventListener('touchend',function (e) { 

            if(isTop()){

                refreshText.innerHTML = "正在刷新...";

                setTimeout(function(){

                    parent.style.transform = "translateY(0)";

                    console.log('成功刷新');

                },2000)

            }

            return;

        })

        function isTop(){

            var t = document.documentElement.scrollTop||document.body.scrollTop;

            return t === 0 ? true : false;

        }



    }

</script>

其中用到了CSS3中的transform和animate。因为既然都是移动端了,这些东西基本上都支持了。

具体看代码吧,注释也有。本文只是讲解原理,后续将会对其进行封装成一个对象。方便直接调用。

相关文章推荐:

vue.js移动端实现上拉加载下拉刷新

移动端下拉刷新,iScroll.js用法(转载)_html/css_WEB-ITnose

以上就是html5实现移动端下拉刷新(原理和代码)的详细内容,更多请关注php中文网其它相关文章!

原文地址:http://www.php.cn/html5-tutorial-407309.html

H5页面APP端展示(下拉刷新,上拉加载) 立即下载

相关推荐

html5+css3实现上拉和下拉刷新

html5+css3实现上拉和下拉刷新,实现app下拉上拉刷新效果

H5实现下拉刷新

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>H5下拉刷新</title> <style> *{margin:0;padding:0;} #f...

CodingNoob 3689

jquery mobile html5下拉刷新

jquery mobile 实现pc与phone的 html5下拉刷新

H5下拉刷新功能实现攻略!

本文讲解了下拉的原理、并根据原理写出初始代码。在初始代码的基础上,我解决了 6 个缺陷、做了 2 个优化,实现了一个完善的下拉刷新效果。

weixin_64051447的博客 1750

h5移动端下拉刷新插件demo

微信公众号h5页面使用的下拉刷新翻页和上拉刷新翻页插件mescroll-master

html5手机列表页面滑动下拉刷新数据代码

html5手机列表页面滑动下拉刷新数据代码 html5手机列表页面滑动下拉刷新数据代码

轻松实现H5页面下拉刷新:滑动触发、高度提示与数据刷新全攻略

前段时间在做小程序到H5的迁移,其中小程序中下拉刷新的功能引起了产品的注意。他说到,哎,我们迁移后的H5页面怎么没有下拉刷新,于是乎,我就急忙将这部分的内容给填上。本来是计划使用成熟的组件库来实现,尝试之后发现这些组件和我们H5页面的其他逻辑有冲突(H5还有吸顶、锚点、滑动高亮、横向滚动),小小H5页面上承载了太多的功能,兼容起来非常麻烦,想着下拉刷新功能也不复杂,干脆我自己写一个好了。

开心学前端 : ) 2862

从零搭建Simulink-Adams联合仿真平台:实现电机转速的精准闭环控制

本文详细介绍了从零搭建Simulink-Adams联合仿真平台的完整流程,旨在实现电机转速的精准闭环控制。通过将Simulink的控制算法与Adams的物理模型相结合,构建了一个包含真实机械效应的数字孪生系统。文章涵盖了Adams物理模型构建、接口定义、Simulink控制闭环搭建、PID参数调试以及常见避坑指南,为机电系统仿真提供了实用的工程实践指导。

weixin_29189373的博客 152

移动端touch实现下拉刷新

移动端实现下拉刷新   第一部分:四个touch事件   1.touchstart:只要将手指放在了屏幕上(而不管是几只),都会触发touchstart事件。   2.touchmove: 当我们用手指在屏幕上滑动时,这个事件会被连续触发。 如果我们不希望页面随之滑动,我们可以使用event的preventDefault来阻止这个默认行为。   3.touchend: 当手指滑动后离开屏...

weixin_33910759的博客 272

光通信仿真入门:手把手教你用VPI和Matlab搭建第一个联合仿真系统(含避坑指南)

本文详细介绍了如何使用VPI和Matlab搭建光通信联合仿真系统,涵盖软件配置、链路搭建、数据交互等关键环节,并提供常见问题的解决方案。特别适合初学者快速掌握光通信仿真技术,避免常见错误,提升仿真效率。

weixin_28733637的博客 378

深度学习环境搭建:CUDA、Anaconda、PyTorch 完整安装与验证教程

步骤操作验证命令1安装 CUDA 工具包nvcc -V2安装 Anaconda3创建 yolo 环境4安装 PyTorch5验证 GPU。

qq_37606844的博客 320

手机端页面返回后如何自动刷新

手机页面中,按返回键或者js后退之后,如何自动刷新页面,更新数据.

Augushong的博客 3107

深入解析Zynq Ultrascale+ RF Data Converter中的PLL配置与时钟管理

本文深入解析了Zynq Ultrascale+ RF Data Converter中PLL配置与时钟管理的核心原理与实践。文章将RFDC时钟系统比作交响乐团,详细阐述了PLL作为指挥的关键作用,以及系统时钟、Tile时钟、参考时钟与采样时钟的层级关系。重点剖析了PLL配置参数(如VCO频率、分频器设置)的计算方法与稳定性考量,并提供了从IP配置使能顺序到多Tile同步、DRP访问等常见问题的实战避坑指南与调试技巧,帮助工程师构建稳定的射频信号处理基石。

7up55的博客 449

html5实现移动端下拉刷新(原理和代码)

这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 打造全网web前端全栈资料库(总目录)看完学的更快,掌握的更加牢固,你值得拥有(持续更新) 移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。 <!DOCTYPE html> <html lang="e

lin123_00的博客 1094

Ubuntu20.04系统笔记本网卡AX211无法找到wifi问题

之前电脑的系统是18.04基本上安装好了系统,可以直接连上wifi,在买了拯救者y9000p2022版本之后,因为网卡太新,安装ubuntu18.04或者20.04之后会没有wifi连接,非常不方便。于是上网找了各种帖子去解决这个问题。具体实现有所不同。 主要参考了这个帖子来解决的:http://t.csdn.cn/7807R 首先: sudo apt install flex bison 然后: git clone https://github.com/intel/backpor.

weixin_42825962的博客 1万+

完美解决LBP2900打印机安装驱动提示无法识别USB及连接错误等问题(附Win11全新安装支持及卸载方案)

LBP2900打印机虽然经典老旧,但在Win11上依然可以完美使用!许多网上教程都无视安装失败后的问题,在此分享一种全新、100%有效的方法来解决驱动连接错误和无法识别USB设备的问题。无论是新安装还是卸载重装,这个方法都适用。本文整合了通用驱动包,支持Win2000到Win11系统,操作简单,轻松摆脱安装困扰,享受无忧打印体验!

心开始の未来~的博客 2万+

移动端下拉刷新实现原理及代码实现

下拉刷新实现原理 实现下拉刷新主要分为三步: 监听原生touchstart事件,记录其初始位置的值,e.touches[0].pageY 监听原生touchmove事件,记录并计算当前滑动的位置值与初始位置值的差值,大于某个临界值时,显示下拉刷新头,并将页面的overflow属性,设置为false 监听原生touchend事件,若此时元素滑动已经最大值,则进行刷新操作,操作结束后,将页面的ove...

weixin_45786844的博客 953

Oracle-OGG trail 文件大小引起的进程异常 OGG-01172

监控OGG目标端进程,其中一个进程异常,状态为 ABENDED,start repa 执行失败。进入OGG报告目录检查运行报告 2015-04-20 09:38:36 ERROR OGG-01172 Discard file (/ogg/oggrm/11.2/dirdat/repa.dsc) exceeded max bytes (2000000000). 总结处理方法,从根本上解决问题。

xdyzgjy的专栏 7956

html下滑刷新原理,html5实现移动端下拉刷新(原理和代码)

这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。Documenthtml,body,header,p,main,p,...

weixin_31107269的博客 576

uniapp: err = err.replace(this._UNI_INPUT_DIR_REG, ‘UNI_TypeError: err.replace is not a function问题修复

问题:uniapp的依赖包出现了问题,需要升级解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。

py_boy的博客 1453

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

php实现网页下拉刷新,html5实现移动端下拉刷新(原理和代码)

这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。Documenthtml,body,header,p,main,p,...

weixin_36472567的博客 304

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

html下滑刷新原理,html5+css3实现上拉和下拉刷新

html5+css3实现上拉和下拉刷新body,ul,li {padding:0;margin:0;border:0;}body {font-size:12px;-webkit-user-select:none;-webkit-text-size-adjust:none;font-family:helvetica;}#header {position:absolute; z-index:2;top...

weixin_36199904的博客 653

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

html下拉刷新原理,科技常识:移动端下拉刷新头实现原理及代码实现

科技常识:移动端下拉刷新头实现原理及代码实现2021-05-24 21:23:20•互联网今天小编跟大家讲解下有关移动端下拉刷新头实现原理及代码实现 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关移动端下拉刷新头实现原理及代码实现 的相关资料,希望小伙伴们看了有所帮助。下拉刷新实现原理实现下拉刷新主要分为三步:监听原生touchstart事件 记录其初始位置的值 e.touches[0...

weixin_42503645的博客 325

php wap页下拉刷新代码,html5实现移动端下拉刷新(原理和代码)

这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。Documenthtml,body,header,p,main,p,...

weixin_42493313的博客 131

移动端下拉刷新原理

&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;

weixin_42454941的博客 661
上一篇: 关于jQuery的AJAX不兼容IE的解决办法
下一篇: JS - Promise使用详解1(基本概念、使用优点)【转载】
bb1_code
博客等级 码龄8年 2粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值