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 相关文章推荐
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
Mar 03 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
Nov 18 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
微信小程序 教程之WXML
Oct 18 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
Sep 03 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
详解javascript对数组和json数组的操作
Apr 15 Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 Javascript
vue中h5端打开app(判断是安卓还是苹果)
Feb 26 Vue.js
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构造函数实例讲解
2013/11/13 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
DOM下的节点属性和操作小结
2009/05/14 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
python生成IP段的方法
2015/07/07 Python
python pandas库的安装和创建
2019/01/10 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
Python常用库大全及简要说明
2020/01/17 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
python实现图片横向和纵向拼接
2020/03/05 Python
python实现微信打飞机游戏
2020/03/24 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
中文专业毕业生自荐书范文
2014/01/04 职场文书
中学生寄语大全
2014/04/03 职场文书
司法局火灾防控方案
2014/06/05 职场文书
项目投资合作意向书
2014/07/29 职场文书
整改报告格式
2014/11/06 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
Hive HQL支持2种查询语句风格
2022/06/25 数据库