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 相关文章推荐
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
jQuery中offset()方法用法实例
Jan 16 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 Javascript
字太多用...代替的方法(两种)
Mar 15 Javascript
vue 监听屏幕高度的实例
Sep 05 Javascript
小程序实现五星点评效果
Nov 03 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
Aug 09 Javascript
小程序开发之模态框组件封装
Apr 23 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 Vue.js
如何用JavaScript实现一个数组惰性求值库
May 05 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
JQuery扩展对象方法操作示例
2018/08/21 jQuery
小程序实现展开/收起的效果示例
2018/09/22 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
使用Turtle画正螺旋线的方法
2017/09/22 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python去除扩展名的实例讲解
2018/04/23 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
投标承诺书范本
2014/03/27 职场文书
培训科主任岗位职责
2014/08/08 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
财务部岗位职责
2015/02/03 职场文书
同意落户证明
2015/06/19 职场文书
2019个人半年工作总结
2019/06/21 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers