基于iScroll实现下拉刷新和上滑加载效果

发布时间 - 2026-01-11 02:23:26    点击率:

本文实例为大家分享了iScroll下拉刷新上滑加载展示的具体代码,供大家参考,具体内容如下

html代码:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" /> 
<title>iScroll下拉刷新上滑加载</title> 
<link rel="stylesheet" href="style/main.css"/> 
</head> 
<body> 
 
<div class="header">header</div> 
<div id="wrapper"> 
 <div id="scroller"> 
 <div id="pullDown"> 
  <span class="pullDownLabel">下拉刷新</span> 
 </div> 
 <ul id="thelist"> 
  <!--<li>原始数据</li>--> 
 </ul> 
 <div id="pullUp"> 
  <span class="pullUpLabel">上拉加载更多</span> 
 </div> 
 </div> 
</div> 
<div class="footer">footer</div> 
 
<script type="text/javascript" src="script/iscroll.js"></script> 
<script type="text/javascript" src="script/main.js"></script> 
 
</body> 
</html> 

css代码:

body,ul,li {padding:0;margin:0;border:0} 
body {font-size:12px;font-family:microsoft yahei} 
 
.header {position:absolute;top:0; left:0;width:100%;height:45px;line-height:45px;font-size:16px;text-align:center;background:#e6e6e6} 
.footer {position:absolute;bottom:0; left:0;width:100%;height:48px;line-height:48px;font-size:16px;text-align:center;background:#e6e6e6} 
 
#wrapper {position:absolute;top:45px; bottom:48px;left:0;width:100%} 
#scroller li {padding:0 10px;height:60px;line-height:60px;background:#ecf6ff;margin-top:10px} 
#pullDown, #pullUp {padding:0 10px;height:30px;line-height:30px;color:#888;text-align:center} 

js代码:

var myScroll,pullDownEl, pullDownOffset,pullUpEl, pullUpOffset,generatedCount = 0; 
 
function loaded() { 
 //动画部分 
 pullDownEl = document.getElementById('pullDown'); 
 pullDownOffset = pullDownEl.offsetHeight; 
 pullUpEl = document.getElementById('pullUp'); 
 pullUpOffset = pullUpEl.offsetHeight; 
 myScroll = new iScroll('wrapper', { 
 useTransition: true, 
 topOffset: pullDownOffset, 
 onRefresh: function () { 
  if (pullDownEl.className.match('loading')) { 
  pullDownEl.className = ''; 
  pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新'; 
  } else if (pullUpEl.className.match('loading')) { 
  pullUpEl.className = ''; 
  pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载更多'; 
  } 
 }, 
 onScrollMove: function () { 
  
  if (this.y > 5 && !pullDownEl.className.match('flip')) { 
  pullDownEl.className = 'flip'; 
  pullDownEl.querySelector('.pullDownLabel').innerHTML = '释放刷新'; 
  this.minScrollY = 0; 
  } else if (this.y < 5 && pullDownEl.className.match('flip')) { 
  pullDownEl.className = ''; 
  pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...'; 
  this.minScrollY = -pullDownOffset; 
  } else if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) { 
  pullUpEl.className = 'flip'; 
  pullUpEl.querySelector('.pullUpLabel').innerHTML = '释放刷新'; 
  this.maxScrollY = this.maxScrollY; 
  } else if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) { 
  pullUpEl.className = ''; 
  pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...'; 
  this.maxScrollY = pullUpOffset; 
  } 
 }, 
 onScrollEnd: function () { 
  if (pullDownEl.className.match('flip')) { 
  pullDownEl.className = 'loading'; 
  pullDownEl.querySelector('.pullDownLabel').innerHTML = '加载中';   
  pullDownAction(); // Execute custom function (ajax call?) 
  } else if (pullUpEl.className.match('flip')) { 
  pullUpEl.className = 'loading'; 
  pullUpEl.querySelector('.pullUpLabel').innerHTML = '加载中';   
  pullUpAction(); // Execute custom function (ajax call?) 
  } 
 } 
 }); 
 
 loadAction(); 
} 
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);//阻止冒泡 
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 0); }, false); 
 
//初始状态,加载数据 
function loadAction(){ 
 var el, li; 
 el = document.getElementById('thelist'); 
 for (i=0; i<10; i++) { 
 li = document.createElement('li'); 
 li.innerText = '初始数据--' + (++generatedCount); 
 el.appendChild(li, el.childNodes[0]); 
 } 
 myScroll.refresh(); 
} 
 
//下拉刷新当前数据 
function pullDownAction () { 
 setTimeout(function () { 
 //这里执行刷新操作 
  
 myScroll.refresh(); 
 }, 400); 
} 
 
//上拉加载更多数据 
function pullUpAction () { 
 setTimeout(function () { 
 var el, li; 
 el = document.getElementById('thelist'); 
 for (i=0; i<10; i++) { 
  li = document.createElement('li'); 
  li.innerText = '上拉加载--' + (++generatedCount); 
  el.appendChild(li, el.childNodes[0]); 
 } 
 myScroll.refresh(); 
 }, 400); 
} 

示例:

demo地址:http://test.ixiewei.com/iscroll-4-demo

下载地址:iScroll下拉刷新上滑加载

截图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# iScroll  # 下拉刷新  # 上滑加载  # H5基于iScroll实现下拉刷新和上拉加载更多  # IScroll那些事_当内容不足时下拉刷新的解决方法  # iscroll-probe实现下拉刷新和下拉加载效果  # iOS下拉刷新 UIScrollVie异常闪动问题  # 基于iscroll.js实现下拉刷新和上拉加载效果  # 基于HTML5上使用iScroll实现下拉刷新  # 上拉加载更多  # iscroll碰到Select无法选择下拉刷新的解决办法  # iscroll.js的上拉下拉刷新时无法回弹的解决方法  # JQuery插件iScroll实现下拉刷新  # 滚动翻页特效  # iscroll实现下拉刷新功能  # 加载  # 加载中  # 下载地址  # 大家分享  # 具体内容  # 大家多多  # 原始数据  # ul  # span  # pullDownLabel  # thelist  # pullUpLabel  # pullUp  # li  # pullDown  # body  # div  # main  # css  # wrapper 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速生成橙子建站落地页链接?  网易LOFTER官网链接 老福特网页版登录地址  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  如何挑选最适合建站的高性能VPS主机?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  浅述节点的创建及常见功能的实现  微信推文制作网站有哪些,怎么做微信推文,急?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  如何在云虚拟主机上快速搭建个人网站?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  PHP正则匹配日期和时间(时间戳转换)的实例代码  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何用y主机助手快速搭建网站?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  如何用腾讯建站主机快速创建免费网站?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何注册花生壳免费域名并搭建个人网站?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Android自定义控件实现温度旋转按钮效果  如何快速搭建高效简练网站?  PythonWeb开发入门教程_Flask快速构建Web应用  LinuxCD持续部署教程_自动发布与回滚机制  在线教育网站制作平台,山西立德教育官网?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  如何快速生成可下载的建站源码工具?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何确保FTP站点访问权限与数据传输安全?  如何在橙子建站上传落地页?操作指南详解  零服务器AI建站解决方案:快速部署与云端平台低成本实践  详解阿里云nginx服务器多站点的配置  如何制作一个表白网站视频,关于勇敢表白的小标题?  JS碰撞运动实现方法详解  如何在阿里云购买域名并搭建网站?  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  创业网站制作流程,创业网站可靠吗?  网站制作壁纸教程视频,电脑壁纸网站?  网站图片在线制作软件,怎么在图片上做链接?  网站建设保证美观性,需要考虑的几点问题!  中国移动官方网站首页入口 中国移动官网网页登录  如何在IIS中新建站点并解决端口绑定冲突?  javascript中的try catch异常捕获机制用法分析  EditPlus中的正则表达式实战(6)  JavaScript如何实现音频处理_Web Audio API如何工作?  手机网站制作与建设方案,手机网站如何建设?  如何快速登录WAP自助建站平台?  独立制作一个网站多少钱,建立网站需要花多少钱?