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 相关文章推荐
javascript Object与Function使用
Jan 11 Javascript
利用jQuery 实现GridView异步排序、分页的代码
Feb 06 Javascript
JavaScript自定义数组排序方法
Feb 12 Javascript
readonly和disabled属性的区别
Jul 26 Javascript
jQuery实现列表内容的动态载入特效
Aug 08 Javascript
JS Canvas定时器模拟动态加载动画
Sep 17 Javascript
jQuery学习之DOM节点的插入方法总结
Jan 22 Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 Javascript
用js屏蔽被http劫持的浮动广告实现方法
Aug 10 Javascript
ionic使用angularjs表单验证(模板验证)
Dec 12 Javascript
关于js陀螺仪的理解分析
Apr 11 Javascript
Vuex中实现数据状态查询与更改
Nov 08 Javascript
基于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学习之整理字符串
2011/04/17 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
python生成随机验证码(中文验证码)示例
2014/04/03 Python
python中sets模块的用法实例
2014/09/30 Python
人机交互程序 python实现人机对话
2017/11/14 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
办公室主任岗位职责
2013/11/08 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
投资合作协议书范本
2014/04/17 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
理解python中装饰器的作用
2021/07/21 Python