在项目中经常会遇见滑动加载分页的功能,任何功能都希望在众多的方法中探寻最好的办法,下边是我做这个功能的过程
1,zepto中滑动分页插件dropload,这个可以网上去download demo,可以很好的实现滑动分页的效果,但是缺点是他是后台一下返回所有的数据,然后控制一页页显示出来,如果后台数据是通过ajax请求一次返回一页,这种办法显然不能满足,所以果断放弃了这种办法
2.使用iscroll插件,这个插件很多人用,这个产假首先要把要滑动的div定位,代码如下
-
#scroller {
-
position: absolute;
-
z-index: 1;
-
-webkit-tap-highlight-color: rgba(0,0,0,0);
-
width: 2000px;
-
-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;
-
background: #fff;
-
}
这只是一点css代码,这个定位可能会对同一页面的其他部位产生影响,不过我们可以有办法解决,不过不好的一点是在电脑上滑动加载不是鼠标滑动,而是鼠标点击拖动页面,尽管我们现在强调的是手机端,而且手机端这个插件确实可以用,但是还是不算完美,个人认为这个插件比较适用于小面积的手触滑动左右滑动,上下滑动,例如弹出框字太多,手机屏幕不能完全显示可以用这个插件,之后我会写相关demo
3.不用插件的滑动加载分页,我最终采用的就是这种办法,代码如下
-
var page = <%= @advisors[:current_page] %>;
-
$(window).scroll(function () {
-
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
-
loadData(page++);
-
$(".loadMore").show();
-
}
-
});
-
function loadData(page) {
-
var total_pages = <%= @advisors[:total_pages] %>;
-
var next_page = page+1
-
if (next_page > total_pages){
-
next_page = total_pages;
-
$(".loadMore").html("没有数据了");
-
return;
-
}
-
$.ajax(
-
{
-
type: "GET",
-
url: ,
-
data: {
-
orderbyPram:'<%= params[:orderbyPram] %>',
-
page:next_page
-
},
-
success: function (data) {
-
//console.log(data);
-
var response = data;
-
var list = response.list;
-
var result = "";
-
for(var i=0;i<list.length;i++){
-
//处理相关js
-
//相关js处理
-
var hydHtml=""
-
if(list[i].hyd == "非常活跃"){
-
hydHtml += '+list[i].hyd+''
-
}else if(list[i].hyd == "一般活跃"){
-
hydHtml += '+list[i].hyd+''
-
}else if(list[i].hyd == "不活跃"){
-
hydHtml += '+list[i].hyd+''
-
}
-
var summary ='';
-
var listSummary = list[i].summary
-
if(listSummary=="null"||listSummary==null){
-
summary += '
'+
-
'【带看】'+list[i].summary+''+
-
'
'
-
}else{
-
summary += '
'+
-
'【带看】'+list[i].summary+''+
-
'
'
-
}
-
result +=//拼接字符串
-
}
-
$("#scroll-content").append(result);
-
},
-
error: function (x, e) {
-
//alert("Some error");
-
}
-
});
-
}
这种办法非常简单,而且符合要求,但是拼接字符串那里比较冗杂且不好维护,也可以适用模板 arttemplate等,之后等待改造
阅读(1834) | 评论(0) | 转发(0) |