创建分页函数js文件
- 将数据, 页面大小和当前页当做参数传入函数
- 通过每页数据量和数据长度计算页数
- 然后通过创建dom的方式创建分页的html
const paging = (data, pageSize, pageNum) => {
let page = data.length / pageSize;
let pageDiv = '';
for (let i = 0; i < page; i++) {
pageDiv += `<div onclick="pagingChange(${pageSize},${i})">${i + 1}</div>`;
}
document.getElementById("pagingId").innerHTML = `
<div onclick="previous(${pageSize})">上一页</div>
${pageDiv}
<div onclick="nextPage(${pageSize})">下一页</div>
`;
}
使用时的代码
let professionData = [
{
id: 0,
imgUrl: '',
name: '汽车检测与诊断技术1',
time: '2019-09-01',
view: '查看',
recover: '回复',
},
{
id: 1,
imgUrl: '',
name: '汽车检测与诊断技术2',
time: '2019-09-01',
view: '查看',
recover: '回复',
},
{
id: 2,
imgUrl: '',
name: '汽车检测与诊断技术3',
time: '2019-09-01',
view: '查看',
recover: '回复',
},
{
id: 2,
imgUrl: '',
name: '汽车检测与诊断技术4',
time: '2019-09-01',
view: '查看',
recover: '回复',
},
]
const getProfessionData = (val, pageSize, pageNum) => {
let useData = val.slice(pageSize * pageNum, (pageSize * pageNum) + pageSize);
let professionStr = '';
for (let i = 0; i < useData.length; i++) {
professionStr += `
<div class="professionList flex-justsb-alignc">
<div class="professionListTxt" onclick="selectProfessionFn('selectProfession${i}')">${useData[i].name}</div>
</div>
`
}
document.getElementById("professionBoxId").innerHTML = professionStr;
}
let pagenums = 0;
const previous = (pageSize) => {
pagenums === 0 ? pagenums = 0 : pagenums--;
getProfessionData(professionData, pageSize, pagenums)
}
const nextPage = (pageSize) => {
let maxPage = Math.floor(professionData.length / pageSize) - 1
if (pagenums >= maxPage) {
} else {
pagenums++
}
getProfessionData(professionData, pageSize, pagenums)
}
const pagingChange = (pageSize, pageNum) => {
getProfessionData(professionData, pageSize, pageNum)
}
window.onload = function () {
document.getElementById('selectProfession0').style.boxShadow = "1px 1px 5px #e3f0fe";
getProfessionData(professionData, 2, 0)
paging(professionData, 2, 0)
}