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 相关文章推荐
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
JavaScript语言精粹经典实例(整理篇)
Jun 07 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
Jun 14 Javascript
JS无缝滚动效果实现方法分析
Dec 21 Javascript
JS写谷歌浏览器chrome的外挂实例
Jan 11 Javascript
webpack4打包vue前端多页面项目
Sep 17 Javascript
Vue 样式绑定的实现方法
Jan 15 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
Jun 10 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
js实现双色球效果
Aug 02 Javascript
JS模拟实现京东快递单号查询
Nov 30 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
Nginx实现反向代理
2017/09/20 Servers
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
Prototype Object对象 学习
2009/07/12 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
Python异常处理总结
2014/08/15 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
Unix控制后台进程都有哪些进程
2016/09/22 面试题
模具专业毕业推荐信
2014/03/08 职场文书
给校长的建议书
2014/03/12 职场文书
大学生创业计划书
2014/08/14 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
初中运动会前导词
2015/07/20 职场文书
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle