欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

iscroll.js滚动加载实例详解

程序员文章站 2023-02-24 08:18:52
滚动加载是个好东西,可以解决一次加载过多的尴尬,其实就是变相的分页,总结下这个*的用法,挺简单的。 首先是html结构:

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

首先是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获取。

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