iscroll.js滚动加载实例详解


Posted in Javascript onJuly 18, 2017

滚动加载是个好东西,可以解决一次加载过多的尴尬,其实就是变相的分页,总结下这个轮子的用法,挺简单的。

首先是html结构:

<div class=" saleRecord panelList clear" style="position:relative;height:400px;"> 
          <div id="wrapper"> 
            <div id="scroller"> 
              <ul id="thelist"> 
          @foreach (var item in ViewBag.***) 
          { 
            if (item.IsPay == true) 
            { 
              <li> 
          <div class="panelListItemForALL"> 
            <table class="allRecordTable"> 
              <tbody> 
                <tr> 
                  <td>***</td> 
                  <td>@item.***</td> 
                </tr> 
                <tr> 
                  <td>***</td> 
                  <td>@item.***</td> 
                </tr> 
                <tr> 
                  <td>***</td> 
                  <td>@item.***</td> 
                </tr> 
              </tbody> 
            </table> 
          </div> 
              </li>  
            } 
          } 
              </ul> 
              <div id="more">加载更多</div> 
          </div> 
        </div>

然后是css样式:

#wrapper { 
  position: absolute; 
  z-index: 1; 
  top: 0; 
  bottom: 0; 
  left: 0; 
  width: 100%; 
  overflow: hidden; 
} 
 
#scroller { 
  position: absolute; 
  z-index: 1; 
  -webkit-tap-highlight-color: rgba(0,0,0,0); 
  width: 100%; 
  -webkit-transform: translateZ(0); 
  -moz-transform: translateZ(0); 
  -ms-transform: translateZ(0); 
  -o-transform: translateZ(0); 
  transform: translateZ(0); 
  -webkit-touch-callout: none; 
  -webkit-user-select: none; 
  -moz-user-select: none; 
  -ms-user-select: none; 
  user-select: none; 
  -webkit-text-size-adjust: none; 
  -moz-text-size-adjust: none; 
  -ms-text-size-adjust: none; 
  -o-text-size-adjust: none; 
  text-size-adjust: none; 
} 
#more 
    { 
      text-align:center; 
    }

需要的话,给父元素套上position:relative属性
最后是脚本中的初始化和获取数据:

var pagenum = 1, update = true, id=ID; 
    var myScroll; 
    setTimeout(function(){ 
      myScroll = new IScroll('#wrapper', { mouseWheel: true, click: true }); 
      myScroll.on('scrollEnd', function () { 
        //console.log(this.y +"|||"+this.maxScrollY); 
        //如果滑动到底部,则加载更多数据(距离最底部10px高度) 
        if ((this.y - this.maxScrollY) == 0) { 
          getMore(); 
        } 
      }); 
    },100 ); 
     
    function getMore() { 
      var that = document.getElementById("more"); 
      pagenum++; 
      $.ajax({ 
        url: '/***/getPage', 
        data: {'currentPage':pagenum,'id':id}, 
        type: 'POST', 
        datatype: "json", 
        success: function (data) { 
          //alert(data); 
          var list = data.List; 
          if (list.length < 1) { 
            pagenum--; that.innerHTML = "已经没有更多了..."; return; 
          } 
          var ul = document.getElementById("thelist"); 
          for (var i = 0; i < list.length; i++) { 
            var str = "<li>"; 
            str += "<div class=\"panelListItemForALL\"><table class=\"allRecordTable\"><tbody><tr><td>***</td><td>"+list[i].OrderCode+"</td>"; 
            str += "</tr><tr><td>***</td><td>"+list[i].GoodsName+"</td></tr>"; 
            str += "<tr><td>***</td><td>"+ data.DatatimeArray[i] +"</td>"; 
            str += "</tr></tbody></table></div>"; 
            str += "</li>"; 
            ul.innerHTML += str; 
            myScroll.refresh(); 
          } 
        } 
      }); 
 
    }

把相应的数据填充进去就好,当然控制器里要写一个分页获取数据的方法,通过这里的ajax获取。

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

Javascript 相关文章推荐
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
Mar 10 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
JavaScript类型系统之Object详解
Jan 07 Javascript
JS实现禁止鼠标右键的功能
Oct 15 Javascript
Javascript for in的缺陷总结
Feb 03 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
基于js中的存储键值对以及注意事项介绍
Mar 30 Javascript
axios取消请求的实践记录分享
Sep 26 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
Oct 23 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
基于iScroll实现下拉刷新和上滑加载效果
Jul 18 #Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 #jQuery
H5基于iScroll实现下拉刷新和上拉加载更多
Jul 18 #Javascript
iscroll动态加载数据完美解决方法
Jul 18 #Javascript
Angular4学习笔记之新建项目的方法
Jul 18 #Javascript
详解使用nvm安装node.js
Jul 18 #Javascript
jQuery之动画ajax事件(实例讲解)
Jul 18 #jQuery
You might like
解析php file_exists无效的解决办法
2013/06/26 PHP
php微信开发自定义菜单
2016/08/27 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
jQuery中的编程范式详解
2014/12/15 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python os.access()用法实例
2019/02/18 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
详解python tkinter 图片插入问题
2020/09/03 Python
简约控的天堂:The Undone
2016/12/21 全球购物
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
计算机专业自荐信
2013/10/14 职场文书
跟单文员的岗位职责
2013/11/14 职场文书
员工培训邀请函
2014/01/11 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
爱牙日活动总结
2014/08/29 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
Python编程源码报错解决方法总结经验分享
2021/10/05 Python