分页的主要是为了解决当表单数据过多时,查看起来比较不方便吗,这个时候就需要分页查看。
效果演示:
HTML代码:
<div class="dibu"> <!-- 分页 --> <div class="an"> <button onclick="jian()" class="jian"> < </button> <span class="annnie"> </span> <button onclick="jia()" class="jia"> > </button> </div> <!-- 筛选 --> <div class="san"> <select name="" id="xiala" onclick="ccc()"> <option value="5">5条/页</option> <option value="7" >7条/页</option> <option value="10">10条/页</option> </select> </div> <!-- 跳转页 --> <div class="tiao"> 跳至<input type="text" style="width: 30px;" class="tiaozhuan">页 </div>
CSS代码:
.dibu { position: absolute; bottom: 30px; display: flex; justify-content: end; width: 100%; left: -30px; } .an button { width: 20px; height: 20px; color: black; margin-left: 5px; } .san { margin-left: 20px; margin-right: 10px; } .tiao { margin-right: 10px; }
js部分:
//首先声明两个变量,一个为当前页面,一个为页面的渲染的行数 let ye = 0;//页数 let ge = 5; //个数
//通过页数和个数循环数据 for (let i = ye * ge; i < (ye + 1) * ge; i++) { //判断数据是否存在undefined,如果不加上这一行并存在页面数量不满足个数要求,就可能报错 if (arr[i] != undefined) { str += '<tr><td>' + '<input type="checkbox" class = "check">' + ' <span>' + arr[i].serial + '     </span></td>' + '<td>' + arr[i].odd + '</td>' + '<td>' + arr[i].point + '</td>' + '<td>' + arr[i].classify + '</td>' + '<td>' + arr[i].grade + '</td>' + ' <td>' + arr[i].registrant + '</td>' + '<td style = "color:' + col + '">' + arr[i].status + '</td>' + '<td>' + arr[i].time + '</td>' + '<td>' + arr[i].operate + '</td></tr>' } }
渲染按钮数量:
let aaa = Math.ceil(arr.length / ge) for (let j = 0; j < aaa; j++) { anstr += '<button class = "anan" strly="padding:10px;" onclick = fn(' + j + ')>' + (j + 1) + '</button>'; }
按钮点击事件:
//翻页事件 function fn(j) { ye = j; // console.log(j); //重新渲染页面 xuanran() }
//减翻页事件 function jian() { document.getElementsByClassName('jian') let aaa = Math.ceil(arr.length / ge) if (ye > 0 && ye <= aaa) { console.log(ye); ye-- xuanran() } } //加翻页事件 function jia() { let aaa = Math.ceil(arr.length / ge) if (ye == (aaa - 1)) { ye = (aaa - 1) } else { ye++ xuanran() } }
下拉框选择页面数量:
//选择每页的个数 let xiala = document.getElementById('xiala') function ccc() { if (xiala.value == 5) { console.log(xiala.value); ge = 5; setTimeout( function () { ye = 0; xuanran() }, 1000) } else if (xiala.value == 7) { ge = 7; setTimeout( function () { ye = 0; xuanran() }, 1000) } else { ge = 10; setTimeout( function () { ye = 0; xuanran() }, 1000) } }
跳转页面数量:
//跳转页面数 let tiaozhuan = document.getElementsByClassName('tiaozhuan')[0]; tiaozhuan.addEventListener('keyup', function () { let aaa = Math.ceil(arr.length / ge) let t = tiaozhuan.value; if (t != '' && t <= aaa) { tiaozhuan.onkeypress = function (event) { if (event.which === 13) { ye = 0; //点击回车要执行的事件 ye += parseInt((t - 1)); console.log(t - 1); xuanran() ye = 0; } } } })