iscroll动态加载数据完美解决方法


Posted in Javascript onJuly 18, 2017

本文实例为大家分享了iscroll动态加载数据的具体代码,供大家参考,具体内容如下

<div id="wrapper" class="margin-b90">
    <div id="scroller">
      <div id="pullDown">
        <span class="pullDownLabel" style="text-align: center;">加载中...</span>
      </div>
      <div class="sps_itemBox ">
        <div class="list_show">
          <ul id="ulList"></ul>
        </div>
      </div>

      <div id="pullUp">
        <span class="pullUpLabel" style="text-align: center;">上拉加载...</span>
      </div>
    </div>
  </div>

js.

// iScroll 滚动条/上拉刷新/下拉加载
var myScroll,
pullDownEl,
pullDownOffset,
pullUpEl,
pullUpOffset;

function loaded() {
pullDownEl = document.getElementById('pullDown');
pullDownOffset = pullDownEl.offsetHeight;
pullUpEl = document.getElementById('pullUp');
pullUpOffset = pullUpEl.offsetHeight;
myScroll = new iScroll('wrapper', {
useTransition: false,
topOffset: pullDownOffset,
btnOffset: pullUpOffset,
hideScrollbar: true,
fadeScrollbar: true,
onRefresh: function () {
if (pullDownEl.className.match('loading')) {
pullDownEl.className = '';
//pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';
pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
} 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 = '释放刷新...';
pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
this.minScrollY = 0;
} else if (this.y < 5 && pullDownEl.className.match('flip')) {
pullDownEl.className = '';
//pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';
pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
this.minScrollY = -pullDownOffset;
} else if (this.y < (this.maxScrollY - pullUpOffset - 40) && !pullUpEl.className.match('flip')) {
pullUpEl.className = 'flip';
pullUpEl.querySelector('.pullUpLabel').innerHTML = '释放加载...';
this.maxScrollY = this.maxScrollY - pullUpOffset;
}
//else if (this.y > (this.maxScrollY - pullUpOffset) && pullUpEl.className.match('flip')) {
// pullUpEl.className = '';
// pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载...';
// //this.maxScrollY = pullUpOffset;
//}
},
onScrollEnd: function () {
if (pullDownEl.className.match('flip')) {
pullDownEl.className = 'loading';
//pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据刷新中...';
pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
myScroll.refresh();
} else if (pullUpEl.className.match('flip')) { 
pullUpEl.className = 'loading';
pullUpEl.querySelector('.pullUpLabel').innerHTML = '数据加载中...';
setTimeout(function () { myScroll.refresh(); }, 3000);

}
}
});
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);

css

/* iScroll */
#wrapper{width:100%; position:absolute; top:0; bottom:0; z-index:1; overflow:hidden;}
#scroller{
  width:100%; position:absolute; z-index:1;
  -webkit-touch-callout:none; -webkit-tap-highlight-color:rgba(0,0,0,0);
}
#pullDown,
#pullUp{padding:15px 0 15px 60px; font-size:14px; line-height:27px; color:#303030;}
#pullDown{background:url(../images/loadBottom.png) no-repeat 30px center; background-size:27px 27px;}
#pullUp{background:url(../images/loadTop.png) no-repeat 30px center; background-size:27px 27px;}
#pullDown.flip{background:url(../images/loadTop.png) no-repeat 30px center; background-size:27px 27px;}
#pullUp.flip{background:url(../images/loadBottom.png) no-repeat 30px center; background-size:27px 27px;}
#pullDown.loading,
#pullUp.loading{background:url(../images/loading.gif) no-repeat 30px center; background-size:25px 27px;}
/* iScroll end */

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

Javascript 相关文章推荐
对于this和$(this)的个人理解
Sep 08 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
javascript 动态修改css样式方法汇总(四种方法)
Aug 27 Javascript
javascript发送短信验证码实现代码
Nov 12 Javascript
Bootstrap每天必学之标签与徽章
Nov 27 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
javascript cookie基础应用之记录用户名的方法
Sep 20 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
详解ES7 Decorator 入门解析
Feb 18 Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 Javascript
解决Vue项目中tff报错的问题
Oct 21 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 #Javascript
详解使用nvm安装node.js
Jul 18 #Javascript
jQuery之动画ajax事件(实例讲解)
Jul 18 #jQuery
js判断用户是输入的地址请求的路径(实例讲解)
Jul 18 #Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
Jul 18 #Javascript
angular使用bootstrap方法手动启动的实例代码
Jul 18 #Javascript
详解jQuery中关于Ajax的几个常用的函数
Jul 17 #jQuery
You might like
PHP新手上路(十三)
2006/10/09 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
简单的三步vuex入门
2018/05/20 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
浅析Python中的多重继承
2015/04/28 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python正则表达式和元字符详解
2018/11/29 Python
更新修改后的Python模块方法
2019/03/03 Python
Python使用Pygame绘制时钟
2020/11/29 Python
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
务虚会发言材料
2014/12/25 职场文书
会计岗位职责
2015/02/03 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python