Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108479
  • 博文数量: 40
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 423
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-15 11:55
文章分类

全部博文(40)

文章存档

2016年(36)

2015年(2)

2013年(2)

我的朋友

分类: JavaScript

2016-07-08 11:30:57

在项目中经常会遇见滑动加载分页的功能,任何功能都希望在众多的方法中探寻最好的办法,下边是我做这个功能的过程
1,zepto中滑动分页插件dropload,这个可以网上去download demo,可以很好的实现滑动分页的效果,但是缺点是他是后台一下返回所有的数据,然后控制一页页显示出来,如果后台数据是通过ajax请求一次返回一页,这种办法显然不能满足,所以果断放弃了这种办法
2.使用iscroll插件,这个插件很多人用,这个产假首先要把要滑动的div定位,代码如下

点击(此处)折叠或打开

  1. #scroller {
  2.     position: absolute;
  3.     z-index: 1;
  4.     -webkit-tap-highlight-color: rgba(0,0,0,0);
  5.     width: 2000px;
  6.     -webkit-transform: translateZ(0);
  7.     -moz-transform: translateZ(0);
  8.     -ms-transform: translateZ(0);
  9.     -o-transform: translateZ(0);
  10.     transform: translateZ(0);
  11.     -webkit-touch-callout: none;
  12.     -webkit-user-select: none;
  13.     -moz-user-select: none;
  14.     -ms-user-select: none;
  15.     user-select: none;
  16.     -webkit-text-size-adjust: none;
  17.     -moz-text-size-adjust: none;
  18.     -ms-text-size-adjust: none;
  19.     -o-text-size-adjust: none;
  20.     text-size-adjust: none;
  21.     background: #fff;
  22. }
这只是一点css代码,这个定位可能会对同一页面的其他部位产生影响,不过我们可以有办法解决,不过不好的一点是在电脑上滑动加载不是鼠标滑动,而是鼠标点击拖动页面,尽管我们现在强调的是手机端,而且手机端这个插件确实可以用,但是还是不算完美,个人认为这个插件比较适用于小面积的手触滑动左右滑动,上下滑动,例如弹出框字太多,手机屏幕不能完全显示可以用这个插件,之后我会写相关demo
3.不用插件的滑动加载分页,我最终采用的就是这种办法,代码如下

点击(此处)折叠或打开

  1. var page = <%= @advisors[:current_page] %>;
  2.       $(window).scroll(function () {
  3.        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
  4.            loadData(page++);
  5.            $(".loadMore").show();
  6.          }
  7.       });
  8.        function loadData(page) {
  9.           var total_pages = <%= @advisors[:total_pages] %>;
  10.           var next_page = page+1
  11.        if (next_page > total_pages){
  12.           next_page = total_pages;
  13.           $(".loadMore").html("没有数据了");
  14.           return;
  15.         }
  16.        $.ajax(
  17.         {
  18.             type: "GET",
  19.             url: ,
  20.             data: {
  21.               orderbyPram:'<%= params[:orderbyPram] %>',
  22.               page:next_page
  23.             },
  24.             success: function (data) {
  25.                     //console.log(data);
  26.                     var response = data;
  27.                     var list = response.list;
  28.                     var result = "";
  29.       for(var i=0;i<list.length;i++){
  30.         //处理相关js
  31.         //相关js处理
  32.         var hydHtml=""
  33.         if(list[i].hyd == "非常活跃"){
  34.           hydHtml += '+list[i].hyd+''
  35.         }else if(list[i].hyd == "一般活跃"){
  36.           hydHtml += '+list[i].hyd+''
  37.         }else if(list[i].hyd == "不活跃"){
  38.           hydHtml += '+list[i].hyd+''
  39.         }
  40.         var summary ='';
  41.         var listSummary = list[i].summary
  42.         if(listSummary=="null"||listSummary==null){
  43.           summary += '
  44.            '【带看】'+list[i].summary+''+
  45.           '
'
  •         }else{
  •            summary += '
    '+
  •            '【带看】'+list[i].summary+''+
  •           '
  • '
  •         }
  •        result +=//拼接字符串
  •          }
  •          $("#scroll-content").append(result);
  •         },
  •           error: function (x, e) {
  •            //alert("Some error");
  •         }
  •         });
  •    }
  • 这种办法非常简单,而且符合要求,但是拼接字符串那里比较冗杂且不好维护,也可以适用模板 arttemplate等,之后等待改造

    阅读(1769) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~