<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
相关推荐
移动端 下拉刷新 & 上拉加载 组件
下拉刷新 上拉加载 上拉加载 底部点击加载 下拉刷新+上拉加载 下拉刷新+上拉加载 使用requirejs 下拉刷新+上拉加载 自定义dom 下拉刷新+上拉加载 固定头部 下拉刷新+上拉加载 tab一个实例 下拉刷新+上拉加载 tab多个实例
原生js实现上滑加载,下拉刷新
/这里可以获取到ul距离屏幕顶部的距离,每次滚动都会刷新})
原生JS、CSS3 上拉刷新效果的实现。
原生JS、CSS3 上拉刷新效果的实现。原生JS、CSS3 上拉刷新效果的实现。
原生js如何实现上拉加载下拉刷新?
【代码】原生js如何实现上拉加载下拉刷新?
工程师必看:如何用功率谱密度搞定随机振动测试(附Grms计算实例)
本文为工程师详解如何通过功率谱密度(PSD)曲线计算Grms(总均方根加速度),从而量化随机振动测试的强度。文章拆解了平直谱、斜谱的计算公式,提供了完整的Grms计算实例,并指出了单位换算、对数坐标等常见工程陷阱,帮助工程师精准完成测试准备与设备推力评估。
离线反激转换器反馈环路设计:从理论到实践的Type II补偿器详解
在开关电源设计中,反馈环路稳定性是决定电源性能与可靠性的核心。其本质是通过补偿网络对功率级的小信号特性进行校正,以构建一个具有足够相位裕度和增益裕度的闭环系统。反激转换器作为一种广泛应用的隔离拓扑,其功率级在连续导通模式(CCM)和非连续导通模式(DCM)下呈现不同的零极点特性,这直接决定了补偿器的选型。Type II补偿器因其传递函数中固有的积分环节、低频零点与高频极点,恰好能与反激功率级的1P2Z(一个极点、两个零点)特性形成互补,有效塑造理想的回路增益曲线,实现快速稳定的动态响应。本文聚焦于采用TL4
移动端的上拉加载,下拉刷新
下拉刷新和上拉加载这两种交互方式通常出现在移动端中。开源社区也有很多优秀的解决方案,如iscroll库等等,这些第三方库使用起来非常便捷。我们本次通过原生JS的方式实现一次上拉加载,下拉刷新,有助于我们对该技术点更好的理解与支持。
告别纯文本RAG:用Dify 1.11.0多模态知识库,5步搭建一个能“读图”的智能客服助手
本文详细介绍了如何利用Dify 1.11.0多模态知识库构建智能视觉客服助手,通过5个步骤实现图片内容理解与专业回复。从准备多模态素材到配置知识库节点,再到设计工作流逻辑和性能优化,帮助开发者快速搭建高效客服系统,显著提升用户体验和问题解决效率。
纯JavaScript简单实现移动端网页的上拉加载、下拉刷新
公司要在安卓软件中,添加H5网页包,实现订单卡片列表,要求有上拉加载、下拉刷新的功能。
从零上手HiAgent:构建能听懂指令的智能体框架实战指南
智能体(Agent)作为人工智能领域的重要范式,正从传统的预设流程自动化转向以目标驱动的自主规划与执行。其核心原理在于利用大语言模型(LLM)作为决策大脑,通过任务规划、工具调用与记忆机制,将模糊的自然语言指令转化为可执行的工作流。这一技术显著提升了人机协作的效率和自然度,其价值在自动化办公、数据分析与智能流程编排等场景中尤为突出。本文聚焦于HiAgent这一具体框架,深入解析其作为智能体开发平台的核心架构,涵盖规划器、执行器、工具集等关键组件,并提供从环境配置、自定义工具开发到复杂任务链构建的完整工程实践
在VSCode中使用LaTex+(grammarly语法检测,chatgpt翻译,Sumatra PDF 轻量级pdf阅读器)
整个文章分为以下几个内容,打 * 的是必须要安装的。
js 实现上拉加载和下拉刷新
一、js 实现上拉加载 实现上拉加载的原理:监听滚动条滑到页面底部,然后就去做一次请求数据。 window.onscroll = function () { const scrollH = document.documentElement.scrollHeight;// 文档的完整高度 const scrollT = document.documentElement.scrollTop || document.body.scrollTop; // 当前滚动条的垂直偏移 c
STM32独立实现CANOpen主机功能:从零构建轻量级控制方案
本文详细介绍了如何在STM32上不依赖CanFestival库,从零构建一个轻量级的CANOpen主机方案。文章深入剖析了CANOpen主机的三大核心功能——NMT网络管理、SDO参数配置与PDO过程数据交换,并提供了从硬件准备、驱动层构建到协议实现的完整代码实战。该方案代码精简,资源占用低,特别适合在资源受限的STM32平台上实现工业控制、电机驱动等场景的稳定通信。
【转载】 ionic 的 下拉刷新 与 上拉加载
这篇文章是讲解 Ioinc中怎么实现 下拉刷新和上拉加载的。也是我们日常做项目是必不可少的功能。有兴趣的小伙伴可以来学习一下。 更多关于 IONIC 的资源:http://www.aliyue.net/?s=ionic HTML部分 1 <ion-view view-title="消息通知"> 2 <ion-content class="paddi...
使用 Simulink 实现基于相控阵雷达的波束形成技术
摘要:本文详细介绍了利用MATLAB Simulink和Phased Array System工具箱实现相控阵雷达波束形成的完整流程。主要内容包括:1)创建Simulink模型;2)设计天线阵列参数;3)信号生成模块配置;4)波束形成算法实现;5)结果可视化方法;6)仿真调试与优化;7)代码导出与部署。通过分步指导,读者可以掌握从理论到实践的完整开发流程,包括关键参数设置和算法实现示例。该方案适用于军事、气象等领域的雷达系统开发,并支持后续嵌入式和智能算法集成。
QGIS编译(跨平台编译)001:Flex、Bison编译(安装)(Windows、Linux、MacOS环境下安装)
QGIS编译;Flex、Bison编译(安装)(Windows、Linux、MacOS环境下安装)
移动端上拉加载下拉刷新插件-mescroll.js插件
https://www.cnblogs.com/duanyue/p/8031754.html 官网地址是:http://www.mescroll.com 下载mescroll.js插件。 在页面中引入如下两个文件: mescroll.min.css mescroll.min.js html部分代码 <div class...
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
H5下拉刷新和上拉加载实现原理浅析 (转载)
H5下拉刷新和上拉加载实现原理浅析 前言 在移动端H5网页中,下拉刷新和上拉加载更多数据的交互方式出现频率很高,开源社区也有很多类似的解决方案,如iscroll,pulltorefresh.js库等。下面是对这两种常见交互基本实现原理的阐述。 实现原理 下拉刷新 实现下拉刷新主要分为三步: 监听原生touchstart事件,记录其初始位置的值,e.touches[0].pageY; ...
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
mui实现移动端上拉加载下拉刷新功能
移动端上拉加载下拉刷新功能是必不可少运用非常频繁的 mui框架实现方法 引入mui加载文件 <script src="js/mui.min.js"></script> <link href="css/mui.min.css" rel="stylesheet"/> html: <div id="pullrefresh" class="mui-...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
better-scroll&vue实现上拉加载更多下拉刷新
在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示:http://www.tuicool.com/articles/ueaYBjZ 也可以是横向滚动的导航栏,如图所示:可以打开“微信 —> 钱包—>滴滴出行”体验效果。我们在实现这类滚动功能的时候,会用到我写的第三方库,better-scroll。 什么是 better-scroll
iscroll 上拉加载和下拉刷新
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0"> <title>Title</t...
【转】html5实现移动端下拉刷新(原理和代码)
这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。 &lt;meta charset="UTF-8"&gt; ...
React Native 之FlatList 下拉刷新和上拉加载更多
接上一篇代码: 只修改了FlatListDemo.js里面的代码 import React, {Fragment,Component} from 'react'; import { SafeAreaView, StyleSheet, ScrollView, View, Text, StatusBar, FlatList, Ref...
移动端下拉刷新、上拉异步加载的插件以及轮播图插件
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
vue.js移动端app实战4:上拉加载以及下拉刷新(转载)
上拉加载以及下拉刷新都是移动端很常见的功能,在搜索或者一些分类列表页面常常会用到。 跟横向滚动一样,我们还是采用better-scroll这个库来实现。由于better已经更新了新的版本,之前是0.几的版本,更新了一下发现,现在已经是1.2.6这个版本了,新版本多了些 比较好用的api,所以我也重写了之前的代码,用新的api来实现上拉加载以及下拉刷新。 首先把基本的样式写好,这里就略过了,...
mescroll—移动端精致的下拉刷新和上拉加载js框架(支持Vue)
一款非常不错的下拉刷新,上拉加载的插件:文档地址:http://www.mescroll.com/index.html 转载于:https://www.cnblogs.com/tian-long/p/8718766.html
980



被折叠的 条评论
为什么被折叠?



