下面注释很详细,这里就不做过多的介绍了
html容器
<div id="docList"></div>
<div class="more" id="docLoadMore">加载更多</div>
js逻辑处理
var data = {
// 分页数据
docPages: {
pageNo: 1, // 当前页码
pageSize: 3 // 一页多少条数据
},
// 模拟数据
docList: [{
name: '这是我的第1篇文章'
},{
name: '这是我的第2篇文章'
},{
name: '这是我的第3篇文章'
},{
name: '这是我的第4篇文章'
},{
name: '这是我的第5篇文章'
},{
name: '这是我的第6篇文章'
},{
name: '这是我的第7篇文章'
},{
name: '这是我的第8篇文章'
}]
}
$('#docLoadMore').on('click',function(){
function getHtml(name) {
// html模板
var tpl = '<div class="load-li dis-flex clearfix">'+
'<span class="align-left">'+
'<img src="../images/productDetails/yh_product_wendang_icon@2x.png" / class="word-icon">'+
'</span>'+
'<span class="color-66 flex1 li-content fs-01">'+name+'</span>'+
'<span class="align-right">'+
'<img src="../images/productDetails/yh_product_xiazai_icon@2x.png" / class="load-icon">'+
'</span>'+
'</div>';
return tpl;
}
var pageNo = data.docPages.pageNo;
var pageSize = data.docPages.pageSize;
// 计算最多分多少页
// 总条数 / 一页多少条 = 可以分多少页 如果是小数 向上取整(Math.ceil)
let maxPage = Math.ceil(data.docList.length / pageSize);
// 如果页面大于总页数return
if (pageNo > maxPage) {
console.log('没有更多了');
return;
}
// 计算第n页时取第几条到第几条数据
var startIndex = (pageNo-1) * pageSize; // 下标从0开始,所以-1
// 1:(1-1)*2=>0
// 2:(2-1)*2=>2
// 3:(3-1)*2=>4
// 4:(4-1)*2=>6
var endIndex = pageNo * pageSize - 1;
// 1: 1*2=>2
// 2: 2*2=>4
// 3: 3*2=>6
data.docPages.pageNo ++;
// 根据下标找到对应的页码的数据
var newPage = vm.data.docList.slice(startIndex, endIndex+1);
let html = '';
newPage.map(function(item){
html += getHtml(item.name);
});
// 向元素后面插入准备好的html内容
$('#docList').append(html);
})
提示
tips:
上面代码没有初始化第一页数据,点击一下才会出来第一页的数据,所以可以在页面加载完毕,自动触发一下点击事件
// 页面加载完毕触发一次,作为默认值
$('#docLoadMore').trigger('click');
公告
以后每月5、15、25号更新原创文章,内容不限,喜欢小编的可以点击关注,也可在下方评论留言,你喜欢什么内容,小编根据大家喜欢的内容尝试更新
正文结束
Ctrl + Enter