本篇文章和大家了解一下使用javascript實現前端分頁效果的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
需求:實現分頁請求表格數據,ajax暫時沒寫,只寫了分頁的功能。
效果圖:
當頁數是第一頁的時候,首頁和向前那個按鈕處于禁止點擊的狀態

各個按鈕都正常的狀態

當頁數是第一頁的時候,首頁和向前那個按鈕處于禁止點擊的狀態

各部分的代碼如下:
html部分:
<!-- 分頁 --> <div class="pageBox"> <div class="pageTotal">共<span id="dataLength">88</span>條</div> <div class="pageContent"> <button class='firstPage'>首頁</button> <button class="prevPage"></button> <button class="showPage"></button> <button class="nextPage"></button> <button class="lastPage">尾頁</button> </div> <div class="selectSize"> <div><span class="numSelect">10</span> <span>條/頁</span></div> <div class="icona"></div> </div> <!-- <div id="test1" ></div> --> <div class="goPage"><span>跳至</span><input type="text" id="goPageInp"><span>頁</span></div> <ul class="pageSelectShow"> <li data-num="10">10條/頁</li> <li data-num="20">20條/頁</li> <li data-num="50">50條/頁</li> <li data-num="100">100條/頁</li> </ul> </div>
CSS部分:
* {
padding: 0;
margin: 0;
}
body,
html {
width: 100%;
height: 100%;
}
.pageBox{
width: 60%;
margin-left: 20%;
margin-top: 200px;
position: relative;
height: 50px;
}
.pageBox>div{
float: left;
margin: 0 10px;
}
.pageContent>button{
float: left;
margin: 0px 4px;
border: none;
outline: none;
}
.goPage,.pageTotal{
height: 30px;
vertical-align: middle;
font-size: 14px;
}
.goPage{
right: 50px;
}
.goPage span{
display: inline-block;
color: #999999;
}
.goPage input{
display: inline-block;
width: 50px;
height: 30px;
margin: 0px 5px;
border: none;
border: 1px solid #ccc;
border-radius: 4px;
text-align: center;
}
.pageTotal{
left: 50px;
line-height: 30px;
font-size: 15px;
color: #999;
}
.pageTotal span{
margin: 0 3px;
color: #333;
}
.selectSize{
width: 100px;
height: 30px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 14px;
text-align: center;
line-height: 30px;
vertical-align: middle;
position: relative;
}
.selectSize>div{
float: left;
margin-left: 5px;
}
.icona{
width: 20px;
height: 20px;
background-image: url('./down.png');
background-size: 100% 100%;
background-position: center center;
margin-top: 5px;
cursor: pointer;
position: absolute;
right: 6px;
}
.pageSelectShow{
width: 100px;
height: 162px;
border: 1px solid #ccc;
overflow-y: auto;
position: absolute;
top: -170px;
left: 400px;
list-style: none;
font-size: 15px;
display: none;
background: #fff;
border-radius: 3px;
}
.pageSelectShow li{
width: 100%;
height: 40px;
line-height: 40px;
text-align: center;
cursor: pointer;
}
.pageContent>div{
cursor: pointer;
height: 30px;
}
.firstPage,.lastPage{
width: 60px;
}
.firstPage,.lastPage,.showPage{
background:rgb(67, 133, 255);
color: #fff;
font-size: 15px;
line-height: 30px;
text-align: center;
border-radius: 4px;
}
.showPage{
width: 40px;
}
.prevPage,.nextPage{
height: 30px;
width: 50px;
border: 1px solid #ccc;
border-radius: 4px;
background-repeat: no-repeat;
background-position: center center;
background-size: 20px 20px;
}
.prevPage{
background-image: url('./prev.png');
}
.nextPage{
background-image: url('./next.png');
}
.nowtouch{
color:#009E94
}JS代碼:
//點擊顯示選擇條數的div
var showFlag = true;
var numcount = 1;//默認第一頁
var dataLength =10000;
$('#dataLength').text(dataLength);
var allCount = Math.ceil(dataLength / 10);
console.log(allCount);
//分頁跳轉
$('.showPage').text(numcount)
if (numcount === 1) {
firstDis(true, 'not-allowed', '0.5')
}
if (numcount === allCount) {
lastDis(true, 'not-allowed', '0.5')
}
$('.icona').click(function () {
if (showFlag) {
$('.pageSelectShow').css({
'display': 'block'
});
$('.icona').css({
'background-image': 'url(' + './up.png' + ')'
})
showFlag = !showFlag;
} else {
$('.pageSelectShow').css({
'display': 'none'
})
$('.icona').css({
'background-image': 'url(' + './down.png' + ')'
})
showFlag = !showFlag;
}
})
//點擊選擇條數
//
$('.pageSelectShow li').click(function (e) {
console.log(e.target.innerHTML)
var countLength = e.target.innerHTML
for(var i = 0; i < countLength.length;i++){
console.log(countLength[i])
}
$('.numSelect').text($(this).data('num'));
allCount = Math.ceil(dataLength / e.target.dataset.num);
if(allCount == 1){
firstDis(true, 'not-allowed', '0.5');
lastDis(true, 'not-allowed', '0.5')
}else{
firstDis(true, 'not-allowed', '0.5')
lastDis(false, 'pointer', '1')
}
$(this).addClass('nowtouch').siblings().removeClass('nowtouch')
$('.pageSelectShow').css({
'display': 'none'
})
$('.icona').css({
'background-image': 'url(' + './down.png' + ')'
})
})
//點擊首頁
$('.firstPage').click(function () {
numcount = 1;
$('.showPage').text(numcount);
firstDis(true, 'not-allowed', '0.5')
lastDis(false, 'pointer', '1')
})
//點擊上一頁
$('.prevPage').click(function () {
var prevNum = Number($('.showPage').text());
prevNum--;
$('.showPage').text(prevNum);
if (prevNum == numcount) {
firstDis(true, 'not-allowed', '0.5')
} else {
lastDis(false, 'pointer', '1')
}
})
//點擊下一頁
$('.nextPage').click(function () {
var prevNum = Number($('.showPage').text());
prevNum++
firstDis(false, 'pointer', '1')
$('.showPage').text(prevNum);
if (prevNum == allCount) {
lastDis(true, 'not-allowed', '0.5')
} else {
lastDis(false, 'pointer', '1')
}
})
//點擊尾頁
$('.lastPage').click(function () {
numcount = allCount
$('.showPage').text(allCount);
firstDis(false, 'pointer', '1')
lastDis(true, 'not-allowed', '0.5')
})
//當頁碼為1,禁止點擊的函數
function firstDis(boolVal, cursorVal, opacityVal) {
$('.firstPage').attr('disabled', boolVal);
$('.firstPage').css({
'cursor': cursorVal,
'opacity': opacityVal
})
$('.prevPage').attr('disabled', boolVal);
$('.prevPage').css({
'cursor': cursorVal,
'opacity': opacityVal
})
}
//當頁碼為20,禁止點擊的函數
function lastDis(boolVal, cursorVal, opacityVal) {
$('.lastPage').attr('disabled', boolVal);
$('.lastPage').css({
'cursor': cursorVal,
'opacity': opacityVal
})
$('.nextPage').attr('disabled', boolVal);
$('.nextPage').css({
'cursor': cursorVal,
'opacity': opacityVal
})
}
//鍵盤事件
$('#goPageInp').on('keydown', function (e) {
if (e.keyCode == 13) {
var vals = e.target.value;
console.log(Number(vals));
$(this).blur();
if(Number(vals) && Number(vals) <=allCount ){
$('.showPage').text(vals);
if (vals == allCount) {
firstDis(false, 'pointer', '1')
lastDis(true, 'not-allowed', '0.5')
}
if (vals == numcount) {
lastDis(false, 'pointer', '1')
firstDis(true, 'not-allowed', '0.5')
}
e.target.value = ''
}else{
alert('輸入錯誤');
e.target.value = ''
}
}
})以上就是使用javascript實現前端分頁效果的方法的簡略介紹,當然詳細使用上面的不同還得要大家自己使用過才領會。如果想了解更多,歡迎關注億速云行業資訊頻道哦!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。