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 相关文章推荐
Div Select挡住的解决办法
Aug 07 Javascript
JavaScript实现x秒后自动跳转到一个页面
Jan 03 Javascript
jquery datatable后台封装数据示例代码
Aug 07 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
jQuery+CSS3实现点赞功能
Mar 13 Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 Javascript
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
VueJS 组件参数名命名与组件属性转化问题
Dec 03 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
Apr 02 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
Jan 02 Javascript
基于jQuery实现挂号平台首页源码
Jan 06 jQuery
vue.config.js中配置Vue的路径别名的方法
Feb 11 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面向对象的方法重载两种版本比较
2008/09/08 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
PHP积分兑换接口实例
2015/02/09 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
python多线程扫描端口示例
2014/01/16 Python
Python中正则表达式的用法实例汇总
2014/08/18 Python
利用python获取Ping结果示例代码
2017/07/06 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
Python requests模块cookie实例解析
2020/04/14 Python
Linux Interview Questions For software testers
2013/05/17 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
房地产财务管理制度
2014/02/02 职场文书
个人工作保证书
2015/02/28 职场文书
大学生个人简历自我评价
2015/03/11 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
清明节主题班会
2015/08/14 职场文书