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 相关文章推荐
js+xml生成级联下拉框代码
Jul 24 Javascript
Javascript中引用示例介绍
Feb 21 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
Dec 08 Javascript
js获取一组日期中最近连续的天数
May 25 Javascript
详解webpack介绍&amp;安装&amp;常用命令
Jun 29 Javascript
Vue.js中组件中的slot实例详解
Jul 17 Javascript
Vue导出json数据到Excel电子表格的示例
Dec 04 Javascript
Vue CLI3 如何支持less的方法示例
Aug 29 Javascript
js html实现计算器功能
Nov 13 Javascript
图解javascript作用域链
May 27 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
Sep 18 Javascript
openlayers 3实现车辆轨迹回放
Sep 24 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
关于我转生变成史莱姆这档事:第二季PV上线,萌王2021年回归
2020/05/06 日漫
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
python ip正则式
2009/05/07 Python
python抓取网页内容示例分享
2014/02/24 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Django数据库操作之save与update的使用
2020/04/01 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
夫妻吵架保证书
2015/05/08 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记