所属栏目:发布日期:2016-09-29 08:38浏览量:2666作者:admin
本次是利用把瀑布流代码来实现点击加载更多。首先引入jQuery插件与瀑布流插件jquery.masonry.min.js
这里注意jQuery插件版本,部分版本可能出现手机端无法加载(触摸无法监听)问题,本次使用的是jQuery v2.1.1
调用十分简单,主要注意ul要加上class="clear"和id="content",li中要加上post,当然命名可以改变,对应的js也需要变动
{dede:list pagesize='4'}
[field:pubdate function='strftime("%d",@me)'/]
[field:pubdate function='strftime("%Y-%m",@me)'/]
</li>
{/dede:list}
{dede:pagelist listitem="more"/}
if($this->PageNo!=$totalpage && $totalpage>1)
{
$nextpage.="
//增加more
$more="加载更多";
$endpage="
}
if(preg_match('/next/i', $listitem)) $plist .= $nextpage;
//在对应的下一页增加more
if(preg_match('/more/i', $listitem)) $plist .= $more;
$(function(){
//对content调用masonry插件
$('#content').masonry({
itemSelector : '.post',
columnWidth : 260
});
//首先给窗口绑定事件scroll
$("#more").click(function() {
// 然后判断窗口的滚动条是否接近页面底部,这里的20可以自定义
var link = $(".next_page a");
//首先取得下一页的链接地址
var href = link.attr("href");
//判断下一页的链接地址是否存在
if (href != undefined) {
//如果存在的话,用ajax获取数据
$.ajax({
type: "get",
url: href,
success: function(data) {
//将返回的数据进行处理,挑选出class是post的内容块
var $res = $(data).find(".post");
//结合masonry插件,将内容append进ID是content的内容块中
$("#content").append($res).masonry('appended', $res);
//newHref获取返回的内容中的下一页的链接地址
var newHref = $(data).find(".next_page a").attr("href");
//判断下一页地址是否存在,如果存在,替换当前页的链接地址。不存在,将当前页链接地址属性href移除,并替换内容为"下一页没有了"
if (newHref != undefined) {
link.attr("href", newHref);
} else {
$("#more ").css("display","none");
link.html("没有了").removeAttr("href");
};
}
});
};
//返回false,使得点击进入新页面失效
return false;
})
});