加载更多跟分页道理是一样的
点击加载更多实际上就是加载下一页的内容
主要实现效果是
点击加载更多 加载的时候变成加载中 加载完成之后还是加载更多 如果没有文章就显示没有更多



代码示例
<div class="zzpd-rm" style="height: 58px;">
<h2 class="sub" id="sub" style="margin-top: 10px;">
<foreach name="subCategory" item="vo" >
<a href="javascript:;" id="sub_{$vo.id}" <if condition="($key == 0)">class="active"</if>><div class="sub-dian"></div>{$vo.name}</a>
</foreach>
</h2>
</div>
<foreach name="subCategory" item="vo1" key="key">
<?php
if($vo1['id'] == 76 and $indexFlag == 0)
{
?>
<div class="news-main" style="display: block;" id="news_main_{$vo1.id}">
<div id="append_{$vo1.id}">
<article class="news-list clearfix">
<portal:articles limit="1" where="$where" order="post.published_time DESC" categoryIds="$vo1.id">
<div class="row">
<div class="col-md-3 column">
<a href="#" target="_blank">
<img src="{:cmf_get_image_url($vo.more.thumbnail)}" width="100%" alt="">
</a>
</div>
<div class="col-md-9 column">
<div>
<h2>
<a href="{:url('portal/Article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}" target="_blank" class="link">{$vo.post_title}</a>
</h2>
<p class="desc">
{$vo.post_excerpt}
</p>
<div class="date clearfix">
<span class="cat-type">
<volist name="$vo.categories" id="item">
<a href="{:url('portal/List/index', ['id' => $item.id])}">{$item.name}</a>
</volist>
</span>
<i>{:date('Y-m-d', $vo['published_time'])}</i>
</div>
</div>
</div>
</div>
</portal:articles>
</article>
<hr class="list">
<portal:articles limit="1,6" where="$where" order="post.published_time DESC" categoryIds="$vo1.id" page="6">
<article class="news-list clearfix">
<div class="row">
<div class="col-md-12 column">
<div>
<h2>
<a href="{:url('portal/Article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}" target="_blank" class="link">{$vo.post_title}</a>
</h2>
<p class="desc">
{$vo.post_excerpt}
</p>
<div class="date clearfix">
<span class="cat-type">
<volist name="$vo.categories" id="item">
<a href="{:url('portal/List/index', ['id' => $item.id])}">{$item.name}</a>
</volist>
</span>
<i>{:date('Y-m-d', $vo['published_time'])}</i>
</div>
</div>
</div>
</div>
</article>
<hr class="list">
</portal:articles>
</div>
<div class="five_gd">
<a href="javascript:;" onclick="getNewsHome({$vo1.id});" id="ids{$vo1.id}">点击查看更多</a>
</div>
</div>
<?php
$indexFlag ++;
}else{
?>
<div class="news-main" style="display: none;" id="news_main_{$vo1.id}">
<div id="append_{$vo1.id}">
<article class="news-list clearfix">
<portal:articles limit="1" where="$where" order="post.published_time DESC" categoryIds="$vo1.id">
<div class="row">
<div class="col-md-3 column">
<a href="#" target="_blank">
<img src="{:cmf_get_image_url($vo.more.thumbnail)}" width="100%" alt="">
</a>
</div>
<div class="col-md-9 column">
<div>
<h2>
<a href="{:url('portal/Article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}" target="_blank" class="link">{$vo.post_title}</a>
</h2>
<p class="desc">
{$vo.post_excerpt}
</p>
<div class="date clearfix">
<span class="cat-type">
<volist name="$vo.categories" id="item">
<a href="{:url('portal/List/index', ['id' => $item.id])}">{$item.name}</a>
</volist>
</span>
<i>{:date('Y-m-d', $vo['published_time'])}</i>
</div>
</div>
</div>
</div>
</portal:articles>
</article>
<hr class="list">
<portal:articles limit="1,6" where="$where" order="post.published_time DESC" categoryIds="$vo1.id" page="6">
<article class="news-list clearfix">
<div class="row">
<div class="col-md-12 column">
<div>
<h2>
<a href="{:url('portal/Article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}" target="_blank" class="link">{$vo.post_title}</a>
</h2>
<p class="desc">
{$vo.post_excerpt}
</p>
<div class="date clearfix">
<span class="cat-type">
<volist name="$vo.categories" id="item">
<a href="{:url('portal/List/index', ['id' => $item.id])}">{$item.name}</a>
</volist>
</span>
<i>{:date('Y-m-d', $vo['published_time'])}</i>
</div>
</div>
</div>
</div>
</article>
<hr class="list">
</portal:articles>
</div>
<div class="five_gd">
<a href="javascript:;" onclick="getNewsHome({$vo1.id});" id="ids{$vo1.id}">点击查看更多</a>
</div>
</div>
<?php
}
?>
</foreach>
js
function getNewsHome(id){
var page = $('#sub_' + id).data('page');
page = page ? page : 2;
// console.log(page);
var url = GV.ROOT +'portal/list/getMore?'+'page='+ page +"&cid=" + id;
$.get(url, function(data) {
data = JSON.parse(data);
var d = data.data;
// console.log(d);
var html = '';
// setTimeout(function(){
//加载层-风格2
if (d==null) {
$('#ids'+id).html('没有更多');
}else{
$('#ids'+id).html('加载中...');
// layer.load(1);
//此处演示关闭
setTimeout(function(){
// layer.closeAll('loading');
for(var i=0; i<d.length; i++){
var item = d[i];
html += '<article class="news-list clearfix">\
<div class="row">\
<div class="col-md-12 column">\
<div>\
<h2>\
<a href="'+ item.url +'" target="_blank" class="link">'+ item.post_title +'</a>\
</h2>\
<p class="desc">'+ item.post_excerpt +'</p>\
<div class="date clearfix">\
<i>'+ item.published_time +'</i>\
<span style="margin-left:15px;">点击量:'+ item.post_hits +'</span>\
</div>\
</div>\
</div>\
</div>\
</article>\
<hr class="list">';
}
// console.log('---------------');
// console.log(html);
$('#append_'+ id).append(html);
page++;
$('#sub_' + id).data('page', page);
$('#ids'+id).html('点击查看更多');
}, 500);
}
// layer.msg('加载中', {
// icon: 16
// ,shade: 0.01,
// time: 500
// }, function(){
// //do something
// for(var i=0; i<d.length; i++){
// var item = d[i];
// html += '<article class="news-list clearfix">\
// <div class="row">\
// <div class="col-md-12 column">\
// <div>\
// <h2>\
// <a href="'+ item.url +'" target="_blank" class="link">'+ item.post_title +'</a>\
// </h2>\
// <p class="desc">'+ item.post_excerpt +'</p>\
// <div class="date clearfix">\
// <i>'+ item.published_time +'</i>\
// <span style="margin-left:15px;">点击量:'+ item.post_hits +'</span>\
// </div>\
// </div>\
// </div>\
// </div>\
// </article>\
// <hr class="list">';
// }
// // console.log('---------------');
// // console.log(html);
// // $('#news_main_'+ id).append(html);
// $('#append_'+ id).append(html);
// page++;
// $('#sub_' + id).data('page', page);
// });
// },500);
});
}

本文介绍了加载更多的实现原理,其实质等同于分页加载内容。点击加载更多按钮时,会显示加载中状态,加载完成后恢复为加载更多文字。如果数据已全部加载,则显示‘没有更多’提示。文中提供了具体的JavaScript代码示例。
2162

被折叠的 条评论
为什么被折叠?



