分页功能是一个很好玩的功能,在很多浏览器的底部都会有显示分页的效果,想去第几页去第几页
今天就来做一下分页功能。
实现效果如下:
渲染函数代码如下:
//渲染函数,函数名为fn function fn() { //计算数据的总数量除以当前页数据的数量 num = Math.ceil(ppt.length) / row //声明一个空字符串,渲染第几页 let etr = `` //声明一个空字符串,渲染页数 let atr = `` //声明一个空字符串,渲染内容 let str = `` //for循环整个数据 for (let i = row * page; i < row * (page + 1); i++) { if (ppt[i] != undefined) { str += `<p> <span>${i+1}</span> <span>${ppt[i].name}</span> <span>${ppt[i].money}</span> <span>${ppt[i].expend}</span> </p>` } } for (let i = 0; i < num; i++) { if (page == i) { etr += `<p> <span>现在</span> <strong>${i+1}</strong> <span>页/</span> <strong>${Math.ceil(num)}</strong>页 </p>` atr += `<p onclick="tt(${i})" style="color:red">${i+1}</p>`; } else { atr += `<p onclick="tt(${i})">${i+1}</p>`; } } div1.innerHTML = etr div.innerHTML = str ye.innerHTML = atr }
点击事件代码如下:
//上一页点击事件 function s() { if (page > 0) { page-- } else { alert("到第一页了") } fn() } //下一页点击事件 function x() { if (page < num - 1) { page++ } else { alert("到最后一页了") } fn() } //页数点击事件 function tt(arr) { page = arr console.log(arr); fn() } //每页几条点击事件 function f() { let sel = document.getElementById("sel").value row = sel page = 0 fn() }
回车事件代码如下:
//回车事件 input.onkeydown = function(e) { // 回车提交表单 // 兼容FF和IE和Opera var theEvent = window.event || e; var code = theEvent.keyCode || theEvent.which || theEvent.charCode; if (code == 13) { let inputt = document.getElementById("input").value console.log(inputt); if (inputt > 0 && inputt < num + 1 && inputt != "" && inputt == parseInt(inputt)) { page = inputt - 1 } else { alert("没有此页面") } input.value = "" } fn() }