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进度条示例
Apr 28 Javascript
使用jquery prev()方法找到同级的前一个元素
Jul 11 Javascript
javascript中的Base64、UTF8编码与解码详解
Mar 18 Javascript
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
Jan 05 Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 Javascript
Vue resource中的GET与POST请求的实例代码
Jul 21 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
vue父组件向子组件传递多个数据的实例
Mar 01 Javascript
d3.js实现自定义多y轴折线图的示例代码
May 30 Javascript
基于vue实现可搜索下拉框定制组件
Mar 26 Javascript
深入浅出了解Node.js Streams
May 27 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 存储文本换行实现方法
2010/01/05 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
php 文章调用类代码
2011/08/11 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
非常不错的一个javascript 类
2006/11/07 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
vue debug 二种方法
2018/09/16 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
中学教师岗位职责
2013/11/26 职场文书
微笑服务标语
2014/06/24 职场文书
教师个人读书活动总结
2014/07/08 职场文书
课外访万家心得体会
2014/09/03 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
八年级英语教学反思
2016/02/15 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS