基于iSroll 5.0实现的上拉加载和下拉刷新插件

Updownload.js

基于iSroll 5.0实现的上拉加载和下拉刷新插件

移动端效果比较好,开发者工具打开后,需要刷新下页面。

[演示地址:] https://chenyk2016.github.io/upDownLoad/demo.html
[github地址:] https://github.com/chenyk2016/upDownLoad/

效果图

1150849-20171029150936148-1897024875.gif

1.建立html

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><title>下拉刷新,上拉加载</title>
</head>
<body>
<h2>IScroll上拉加载下拉刷新</h2>
<div class="iscroll_wrap" id="iscroll_wrap"><div class="iscroll"><!-- 方案列表 --><div class="task_wrap" ><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P></div></div>
</div>
</body>
</html>

两个容器iscroll_wrap和iscroll;
iscroll为滚动元素,iscroll_wrap为固定大小的容器。
可以在iscroll里新建列表等

2.样式和图片

<style type="text/css">*{ padding: 0;margin: 0; }h2{ text-align: center; border-bottom: 1px solid #ccc; height: 40px; background-color: #eee; }.iscroll_wrap { position: absolute; top: 40px; bottom: 0; width: 100%; background-color: #ccc; overflow: hidden; }/* min-height: 101%; 是避免内容高度小于.iscroll_wrap 的高度时,无法使用iScroll*/.iscroll { position: absolute; top: 0; left: 0; width: 100%; min-height: 101%; background-color: #fff; }.iscroll .loading { background: url(./img/loading.gif) no-repeat left center; padding-left: 30px; }
</style>

注:
iscroll的min-height: 101%; 是避免内容高度小于.iscroll_wrap的高度时,无法使用iScroll

3.引入js文件

<script src="iscroll-probe.js"></script>  // 引入iScroll插件
<script src="./js/updownload.js"></script>  // 扩展的源码
<script type="text/javascript">// 1.创建实例var myRefresh = new UpDownLoad( "#iscroll_wrap" );// 2.绑定事件 myRefresh.on("pullDown", function (d) {// 下拉事件触发行为myRefresh.success(function (d) {// 刷新成功后执行});myRefresh.error(function (d) {// 刷新失败后执行});}).on("pullUp",function (d) {// 上拉事件触发行为myRefresh.success(function (d) {// 上拉成功后执行  });myRefresh.error(function (d) {// 上拉失败后执行});});</script>

注意:
上拉和下拉都有两个状态。为了显示成功状态之前执行刷新DOM,需要将操作DOM的行为放在回调里执行。
myRefresh.success(fn);
myRefresh.error(fn);
如果想看具体实现,可以查看代码源文件updownload.js

完整演示

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><title>下拉刷新,上拉加载</title><style type="text/css">
*{ padding: 0;margin: 0; }
h2{ text-align: center; border-bottom: 1px solid #ccc; height: 40px; background-color: #eee; }
.iscroll_wrap { position: absolute; top: 40px; bottom: 0; width: 100%; background-color: #ccc; overflow: hidden; }
/* min-height: 101%; 是避免内容高度小于.iscroll_wrap 的高度时,无法使用iScroll*/
.iscroll { position: absolute; top: 0; left: 0; width: 100%; min-height: 101%; background-color: #fff; }
.iscroll .loading { background: url(./img/loading.gif) no-repeat left center; padding-left: 30px; }</style>
</head>
<body>
<h2>IScroll上拉加载下拉刷新</h2>
<div class="iscroll_wrap" id="iscroll_wrap"><div class="iscroll"><!-- 方案列表 --><div class="task_wrap" ><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P><P>das</P></div></div>
</div></body>
<script src="iscroll-probe.js"></script>
<script src="./js/updownload.js"></script>
<script type="text/javascript">// 使用window.onload = function () {var myRefresh = new UpDownLoad( "#iscroll_wrap" );myRefresh.on("pullDown", function (d) {console.log('pullDown');// 延时器模拟正在加载效果var taskWrap = document.querySelector(".task_wrap");taskWrap.innerHTML = "";setTimeout(function (res) {// 刷新成功后执行myRefresh.success(function (d) {var taskWrap = document.querySelector(".task_wrap");taskWrap.innerHTML = "<p>刷新as</p><p>a刷新s</p><p>刷新as</p><p>as</p><p>as</p><p>as</p><p>as</p><p>as</p><p>as</p><p>as</p>";});// 刷新失败后执行// myRefresh.error();}, 1000);} ).on("pullUp", function (d) {console.log('pullUp');setTimeout(function (res) {// 加载成功后执行myRefresh.success(function () {var taskWrap = document.querySelector(".task_wrap");var dom = document.createElement("div");dom.innerHTML = "<p>加载</p><p>加载</p><p>加载</p><p>加载</p><p>加载</p><p>加载</p><p>as</p><p>as</p><p>as</p><p>as</p><p>as</p><p>as</p>";taskWrap.appendChild(dom);});// 加载失败后执行// myRefresh.error();}, 1000);});};
</script>
</html>

关注我

github [https://github.com/chenyk2016]
博客园 [https://home.cnblogs.com/u/chenykblog/]

转载于:https://www.cnblogs.com/chenykblog/p/7750067.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[小白进] 大佬们学习为什么简单?小白该如何学习?学历不高如何找工作?副业很好赚?了解后少走弯路

一、前言 对于新手来说&#xff0c;最开始学习编程的难度不亚于学天书&#xff0c;那为什么有经验的程序员在接触一门新技术时能够快速的上手并且完成一些需求的开发呢&#xff1f; 有些人可能看了这个问题觉得我在说废话&#xff0c;“有经验那不快那怎么才快&#xff1f;”…

Chrome如何离线安装crx文件

2019独角兽企业重金招聘Python工程师标准>>> 在Chrome浏览器的谷歌网上应用商店Chrome Web Store上点击应用安装按钮「添加至Chrome」&#xff0c;变成下载文件。把下载文件一拖进浏览器也不能安装。下面是如何离线安装crx文件的方法&#xff1a; ①点击Google Chr…

新坑

最近准备多看一些论文辣&#xff0c;先大体整理一下要看的东西浅谈启发式思想在信息学竞赛中的应用后缀自动机及其应用浅谈分块在一类在线问题中的应用浅谈图的匹配算法及其应用Dp的一些优化技巧对置换群有关算法的初步研究线段树在一类分治问题上的应用慢慢填吧转载于:https:/…

【Envi风暴】Envi 5.1平台下植被覆盖度(VFC)的遥感估算

【导读】植被覆盖度是指植被(包括叶、茎、枝)在地面的垂直投影面积占统计区面积的百分比。常用的计算方法有:经验模型法、植被指数法、像元分解模型法、FCK模型法、决策树分类法和神经网络法。本文利用像元二分模型计算植被覆盖度(VFC)。 一、数据 张掖市Landsat TM影像(…

基于.NetCore开发博客项目 StarBlog - (6) 页面开发之博客文章列表

系列文章基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客&#xff1f;基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目基于.NetCore开发博客项目 StarBlog - (3) 模型设计基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入基于.N…

时间序列matlab代码,MATLAB在时间序列建模预测及程序代码.pdf

第二十四章 时间序列模型时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序列的方法构成数据分析的一个重要领域&#xff0c;即时间序列分析。时间序列根据所研究的依据不同&#xff0c;可有不同的分类。1&#xff0e;按所研究的对象的多少分&#xff0…

Android之安卓8.0版本以上手机开启热点提示Caller already has an active LocalOnlyHotspot request

1 问题 在Android8.0手机开启了热点,关闭页面再次打开热点, /*** 开启Android8.0版本手机以上的热点,热点名字和密码都是随机的。*/fun initWifiApGreaterThanEight(context: Context) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {var wifiManager:WifiMana…

JavaScript基础和js概括

js内容概括&#xff1a; Html 结构化 CSS 样式 JavaScript 行为交互 01.JavaScript基础 02.JavaScript操作BOM对象 03.JavaScript操作DOM对象 ***** 04.JavaScript的面向对象 -------------------------------------- 05.jQuery (js) .css .js 06.jQuery选择器 …

《看聊天记录都学不会C语言?太菜了吧》(12)循环有多容易?你看一眼就怀...

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

***ECharts图表入门和最佳实践

ECharts数据图表系统&#xff1f; 5分钟上手&#xff01; 【ECharts简介】 ECharts开源来自百度商业前端数据可视化团队&#xff0c;基于html5 Canvas&#xff0c;是一个纯Javascript图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数…

【经典回放】多种语言系列数据结构线性表之一:顺序表

一、实验任务描述 建立线性表的ADT后,编程完成: 1 用C语言完成一个顺序表结构; 2 为顺序表完成追加、删除、插入、查找的功能; 3 建立一个链表的结点; 4 完成链表的追加、删除、插入功能; 5* 用C#完成一个结点的类; 6* C#完成链表的追加、删除、插入功能的类; 7* C#编写…

原型继承+原型链 + 对象继承发展

一、原型继承&#xff1a; &#xff11;、说起原型继承&#xff0c;就要先由构造函数创造对象说起&#xff0c;首先了解构造函数内部基本原理&#xff1a; &#xff08;&#xff11;&#xff09;.在函数体最前面隐式的加上this {} &#xff08;&#xff12;&#xff09;.执行 …

Kotlin之?和!!最简单的理解

一、? 1&#xff09;、?在声明对象时&#xff0c;把它跟在类名后面&#xff0c;表示这个类允许为null var list: ArrayList<String>? null 2&#xff09;、调用对象时&#xff0c;把它跟在对象后面&#xff0c;表示如果为null程序就会视而不见&#xff0c;比如我们…

WPF|一个比较简单带点设计的登录界面

阅读目录效果展示准备简单说明 源码结尾&#xff08;视频及源码仓库&#xff09;1. 效果展示欣赏效果&#xff1a;2. 准备创建一个WPF工程&#xff0c;比如站长使用 .NET 7[1] 创建名为 Login5 的WPF项目。找一张图片做为装饰&#xff0c;放登录表单左侧&#xff1a;添加Nuget…

Android插件基础之类加载器学习

记录学习java 加载器学习所获心得&#xff0c;逐步记录了解java加载器的过程。为了知悉android 插件化的实现原理&#xff0c;从而需要从头了解android加载apk&#xff0c;以及基础的java类加载的加载过程情况&#xff0c;为方便记录和记忆&#xff0c;故此将学习了解的过程记录…

php多个文件上传代码,PHP单文件上传类或多文件上传类源码

以下为引用的内容&#xff1a;php文件:代码://如果收到表单传来的参数&#xff0c;则进行上传处理&#xff0c;否则显示表单if(isset($_FILES[uploadinput])){//建目录函数&#xff0c;其中参数$directoryName最后没有"/"&#xff0c;//要是有的话&#xff0c;以/打散…

《看聊天记录都学不会C语言?太菜了吧》(13)(9*9 乘法表)寻找电脑中的盲盒彩蛋

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

Fragment使用--文章集锦

android使用Fragment实现底部菜单使用show()和hide()来切换以保持Fragment状态Android Fragment 真正的完全解析&#xff08;上&#xff09;Android Fragment实践(一)纠正对Fragment Transaction BackStack的误解多个Fragment 切换时不重新实例化Fragment详解之四——管理Fragm…

Android之在在EditText的xml里面配置了相关属性依然没有显示光标问题

1 问题 在EditText的xml里面配置了 android:cursorVisible"true" android:focusable"true" android:focusableInTouchMode"true" 依然没有光标显示 2 解决办法 直接在代码层控制&#xff0c;平且拉起键盘 fun showSoftInputFromWindow(activ…

【经典回放】多种语言系列数据结构线性表之二:链表

目录 1 链表结构设计 2 简单的链表测试 2 链表的组织和ADT设计 3 初始化有头结点链表 4 有头结点链表中追加一个结点(一行数据)