转载 [原生JS]实现移动端的上拉加载&下拉刷新

vue移动端列表组件支持下拉刷新上拉加载更多 vue移动端列表组件,支持下拉刷新,上拉加载更多 立即下载
<body>
  <div id="app">
    <header id="header">
      <input type="text" id="input">
      <input type="submit" id="submit">
    </header>
    <article id="article">
      <ul id="ul">
        <li class="li" id="text">下拉刷新</li>
        <li class="li">1</li>
        <li class="li">2</li>
        <li class="li">3</li>
        <li class="li">4</li>
        <li class="li">5</li>
        <li class="li">6</li>
        <li class="li">7</li>
        <li class="li">8</li>
        <li class="li">9</li>
        <li class="li">10</li>
      </ul>
    </article>
  </div>
</body>

<style>
#article{
    overflow: scroll;
    position: relative;
}
#ul{
    position: absolute;
}
</style>

<script>
//上拉加载
let ul = document.getElementById('ul');  // 获取ul列表
let div = document.getElementById('article') // 获取包裹ul列表的div(css:  overflow:scroll;)
let num = 11; // 要添加的li文本,可自定义
let isLoad = false; // 节流阀辅助变量

// 添加li的方法,可自定义
function addLi() {  
  let fragment = document.createDocumentFragment();
  for(let i=0;i<10;i++) {
    let li = document.createElement('li');
    li.className = 'li';
    li.innerHTML = num++;
    fragment.appendChild(li); // 用DocumentFragment提高渲染速度
  }
  ul.appendChild(fragment);
}

// 上拉加载
div.addEventListener('scroll',function(){
  if(div.scrollHeight-div.scrollTop<1000 && isLoad===false) {
    isLoad = true;
    addLi();
    setTimeout(function(){
      isLoad = false;
    },300)  //  节流阀
  }
},false);
//下拉刷新
let ul = document.getElementById('ul');  // 获取ul列表
let div = document.getElementById('article') // 获取包裹ul列表的div(css:  overflow:scroll;)
let text = document.getElementById('text');  // 写着“下拉刷新”的元素
let start;  // 辅助变量:触摸开始时,相对于文档顶部的Y坐标
let refresh = false;  // 辅助变量:是否刷新

div.addEventListener('touchstart',function(event){
  let touch = event.touches[0];
  start = touch.pageY;  // 辅助变量:触摸开始时,相对于文档顶部的Y坐标
},false);

div.addEventListener('touchmove',function(event){
  // 下拉刷新
  let touch = event.touches[0];
  if(div.scrollTop<=0){
    // 如果ul列表到顶部,修改ul列表的偏移,显示“下拉刷新”,并准备触发下拉刷新功能,可自定义
    ul.style.top = ul.offsetTop + touch.pageY - start +'px'; // ul.style.top = ul.offsetTop + 'px'
    start = touch.pageY;
    // 若ul偏移量过大,则修改文字,refresh置为true,配合'touchend'刷新
    if(ul.offsetTop>=100) {
      text.innerHTML = "释放刷新";
      refresh = true;
    }
  }
},false);

div.addEventListener('touchend',function(event){
  // 若'touchend'时,ul偏移,用setInterval循环恢复ul的偏移量
  if(ul.offsetTop>=0) {
    let time = setInterval(function(){
      ul.style.top = ul.offsetTop -3 +'px';
      // 若ul的偏移量恢复,clearInterval
      if(ul.offsetTop<=0){
        clearInterval(time);
        text.innerHTML = "下拉刷新";
        // 若恢复时'refresh===true',刷新页面
        if(refresh){
          location.reload();
        }
      }
    })
  }
},false);
</script>

转载自 https://www.jianshu.com/p/a8392115e6f0?tdsourcetag=s_pcqq_aiomsg
移动端下拉刷新和上拉加载更多原生插件 本插件适用于一般的app、vue、react中使用 本文中的例子为index.html, 立即下载

相关推荐

移动端 下拉刷新 &amp; 上拉加载 组件

下拉刷新 上拉加载 上拉加载 底部点击加载 下拉刷新+上拉加载 下拉刷新+上拉加载 使用requirejs 下拉刷新+上拉加载 自定义dom 下拉刷新+上拉加载 固定头部 下拉刷新+上拉加载 tab一个实例 下拉刷新+上拉加载 tab多个实例

原生js实现上滑加载,下拉刷新

/这里可以获取到ul距离屏幕顶部的距离,每次滚动都会刷新})

2303_79056168的博客 980

原生JS、CSS3 上拉刷新效果的实现。

原生JS、CSS3 上拉刷新效果的实现。原生JS、CSS3 上拉刷新效果的实现。

原生js如何实现上拉加载下拉刷新?

【代码】原生js如何实现上拉加载下拉刷新?

记录每日学习的知识&技术 314

工程师必看:如何用功率谱密度搞定随机振动测试(附Grms计算实例)

本文为工程师详解如何通过功率谱密度(PSD)曲线计算Grms(总均方根加速度),从而量化随机振动测试的强度。文章拆解了平直谱、斜谱的计算公式,提供了完整的Grms计算实例,并指出了单位换算、对数坐标等常见工程陷阱,帮助工程师精准完成测试准备与设备推力评估。

3c4x5z6v7b的博客 625

离线反激转换器反馈环路设计:从理论到实践的Type II补偿器详解

在开关电源设计中,反馈环路稳定性是决定电源性能与可靠性的核心。其本质是通过补偿网络对功率级的小信号特性进行校正,以构建一个具有足够相位裕度和增益裕度的闭环系统。反激转换器作为一种广泛应用的隔离拓扑,其功率级在连续导通模式(CCM)和非连续导通模式(DCM)下呈现不同的零极点特性,这直接决定了补偿器的选型。Type II补偿器因其传递函数中固有的积分环节、低频零点与高频极点,恰好能与反激功率级的1P2Z(一个极点、两个零点)特性形成互补,有效塑造理想的回路增益曲线,实现快速稳定的动态响应。本文聚焦于采用TL4

weixin_30162121的博客 501

移动端的上拉加载,下拉刷新

下拉刷新和上拉加载这两种交互方式通常出现在移动端中。开源社区也有很多优秀的解决方案,如iscroll库等等,这些第三方库使用起来非常便捷。我们本次通过原生JS的方式实现一次上拉加载,下拉刷新,有助于我们对该技术点更好的理解与支持。

D-的博客 801

告别纯文本RAG:用Dify 1.11.0多模态知识库,5步搭建一个能“读图”的智能客服助手

本文详细介绍了如何利用Dify 1.11.0多模态知识库构建智能视觉客服助手,通过5个步骤实现图片内容理解与专业回复。从准备多模态素材到配置知识库节点,再到设计工作流逻辑和性能优化,帮助开发者快速搭建高效客服系统,显著提升用户体验和问题解决效率。

weixin_30832143的博客 452

纯JavaScript简单实现移动端网页的上拉加载、下拉刷新

公司要在安卓软件中,添加H5网页包,实现订单卡片列表,要求有上拉加载、下拉刷新的功能。

qq_44869043的博客 1823

从零上手HiAgent:构建能听懂指令的智能体框架实战指南

智能体(Agent)作为人工智能领域的重要范式,正从传统的预设流程自动化转向以目标驱动的自主规划与执行。其核心原理在于利用大语言模型(LLM)作为决策大脑,通过任务规划、工具调用与记忆机制,将模糊的自然语言指令转化为可执行的工作流。这一技术显著提升了人机协作的效率和自然度,其价值在自动化办公、数据分析与智能流程编排等场景中尤为突出。本文聚焦于HiAgent这一具体框架,深入解析其作为智能体开发平台的核心架构,涵盖规划器、执行器、工具集等关键组件,并提供从环境配置、自定义工具开发到复杂任务链构建的完整工程实践

weixin_29266007的博客 890

在VSCode中使用LaTex+(grammarly语法检测,chatgpt翻译,Sumatra PDF 轻量级pdf阅读器)

整个文章分为以下几个内容,打 * 的是必须要安装的。

u011895157的博客 2万+

js 实现上拉加载和下拉刷新

一、js 实现上拉加载 实现上拉加载的原理:监听滚动条滑到页面底部,然后就去做一次请求数据。 window.onscroll = function () { const scrollH = document.documentElement.scrollHeight;// 文档的完整高度 const scrollT = document.documentElement.scrollTop || document.body.scrollTop; // 当前滚动条的垂直偏移 c

青蛙king的博客 7502

STM32独立实现CANOpen主机功能:从零构建轻量级控制方案

本文详细介绍了如何在STM32上不依赖CanFestival库,从零构建一个轻量级的CANOpen主机方案。文章深入剖析了CANOpen主机的三大核心功能——NMT网络管理、SDO参数配置与PDO过程数据交换,并提供了从硬件准备、驱动层构建到协议实现的完整代码实战。该方案代码精简,资源占用低,特别适合在资源受限的STM32平台上实现工业控制、电机驱动等场景的稳定通信。

potato的博客 1072

【转载】 ionic 的 下拉刷新 与 上拉加载

这篇文章是讲解 Ioinc中怎么实现 下拉刷新和上拉加载的。也是我们日常做项目是必不可少的功能。有兴趣的小伙伴可以来学习一下。 更多关于 IONIC 的资源:http://www.aliyue.net/?s=ionic HTML部分 1 &lt;ion-view view-title="消息通知"&gt; 2 &lt;ion-content class="paddi...

dkz10838的博客 156

使用 Simulink 实现基于相控阵雷达的波束形成技术

摘要:本文详细介绍了利用MATLAB Simulink和Phased Array System工具箱实现相控阵雷达波束形成的完整流程。主要内容包括:1)创建Simulink模型;2)设计天线阵列参数;3)信号生成模块配置;4)波束形成算法实现;5)结果可视化方法;6)仿真调试与优化;7)代码导出与部署。通过分步指导,读者可以掌握从理论到实践的完整开发流程,包括关键参数设置和算法实现示例。该方案适用于军事、气象等领域的雷达系统开发,并支持后续嵌入式和智能算法集成。

xiaoheshang_123的博客 181

QGIS编译(跨平台编译)001:Flex、Bison编译(安装)(Windows、Linux、MacOS环境下安装)

QGIS编译;Flex、Bison编译(安装)(Windows、Linux、MacOS环境下安装)

LuckyHanMo的博客 3080

移动端上拉加载下拉刷新插件-mescroll.js插件

https://www.cnblogs.com/duanyue/p/8031754.html 官网地址是:http://www.mescroll.com 下载mescroll.js插件。 在页面中引入如下两个文件:   mescroll.min.css   mescroll.min.js html部分代码 &lt;div class...

weixin_30314813的博客 200

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

H5下拉刷新和上拉加载实现原理浅析 (转载)

H5下拉刷新和上拉加载实现原理浅析 前言 在移动端H5网页中,下拉刷新和上拉加载更多数据的交互方式出现频率很高,开源社区也有很多类似的解决方案,如iscroll,pulltorefresh.js库等。下面是对这两种常见交互基本实现原理的阐述。 实现原理 下拉刷新 实现下拉刷新主要分为三步: 监听原生touchstart事件,记录其初始位置的值,e.touches[0].pageY; ...

在路上的小马达 2613

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

mui实现移动端上拉加载下拉刷新功能

移动端上拉加载下拉刷新功能是必不可少运用非常频繁的 mui框架实现方法 引入mui加载文件 &lt;script src="js/mui.min.js"&gt;&lt;/script&gt; &lt;link href="css/mui.min.css" rel="stylesheet"/&gt; html: &lt;div id="pullrefresh" class="mui-...

weixin_30481087的博客 766

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

better-scroll&vue实现上拉加载更多下拉刷新

在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示:http://www.tuicool.com/articles/ueaYBjZ 也可以是横向滚动的导航栏,如图所示:可以打开“微信 —> 钱包—>滴滴出行”体验效果。我们在实现这类滚动功能的时候,会用到我写的第三方库,better-scroll。 什么是 better-scroll

inyiyi的博客 2万+

iscroll 上拉加载和下拉刷新

&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0"&gt; &lt;title&gt;Title&lt;/t...

weixin_30722589的博客 107

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

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

baby_code的博客 2903

React Native 之FlatList 下拉刷新和上拉加载更多

接上一篇代码: 只修改了FlatListDemo.js里面的代码 import React, {Fragment,Component} from 'react'; import { SafeAreaView, StyleSheet, ScrollView, View, Text, StatusBar, FlatList, Ref...

weixin_30681615的博客 251

移动端下拉刷新、上拉异步加载的插件以及轮播图插件

https://pan.baidu.com/s/1eSOOm2m dropload+swiper最近项目中用到了这两个插件,十分好用。这里简单介绍一下。一.dropload 1.引入css和js<link rel="stylesheet" href="../dropload.css"> <script src="../dropload.min.js"></script>2.使用的核心代码<bo

jant的博客 2952

vue.js移动端app实战4:上拉加载以及下拉刷新(转载)

上拉加载以及下拉刷新都是移动端很常见的功能,在搜索或者一些分类列表页面常常会用到。 跟横向滚动一样,我们还是采用better-scroll这个库来实现。由于better已经更新了新的版本,之前是0.几的版本,更新了一下发现,现在已经是1.2.6这个版本了,新版本多了些 比较好用的api,所以我也重写了之前的代码,用新的api来实现上拉加载以及下拉刷新。 首先把基本的样式写好,这里就略过了,...

weixin_33811961的博客 174

mescroll—移动端精致的下拉刷新和上拉加载js框架(支持Vue)

一款非常不错的下拉刷新,上拉加载的插件:文档地址:http://www.mescroll.com/index.html 转载于:https://www.cnblogs.com/tian-long/p/8718766.html

weixin_30551947的博客 185
上一篇: PC端页面切换成手机模式后,出行了一个莫名其妙的980px
下一篇: 移动端滑动时出现一段时间之后消失的提示性模块
子化诗理
博客等级 码龄9年 22粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值