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 相关文章推荐
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 Javascript
跟我学习javascript的基本类型和引用类型
Nov 16 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
Aug 26 Javascript
jquery层级选择器的实现(匹配后代元素div)
Sep 05 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
Dec 02 Javascript
详解JavaScript中关于this指向的4种情况
Apr 18 Javascript
详解如何在vue项目中使用layui框架及采坑
May 05 Javascript
一文快速详解前端框架 Vue 最强大的功能
May 21 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
JavaScript实现随机五位数验证码
Sep 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
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
js处理表格对table进行修饰
2014/05/26 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
Python列表(list)常用操作方法小结
2015/02/02 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Python实现微信小程序支付功能
2019/07/25 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
中学生寄语大全
2014/04/03 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
贷款担保书范本
2015/09/22 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
python脚本框架webpy的url映射详解
2021/11/20 Python