javascript實(shí)現(xiàn)前端分頁效果
本文實(shí)例為大家分享了javascript實(shí)現(xiàn)前端分頁效果的具體代碼,供大家參考,具體內(nèi)容如下
需求:實(shí)現(xiàn)分頁請求表格數(shù)據(jù),ajax暫時(shí)沒寫,只寫了分頁的功能。
效果圖:
當(dāng)頁數(shù)是第一頁的時(shí)候,首頁和向前那個(gè)按鈕處于禁止點(diǎn)擊的狀態(tài)

各個(gè)按鈕都正常的狀態(tài)

當(dāng)頁數(shù)是第一頁的時(shí)候,首頁和向前那個(gè)按鈕處于禁止點(diǎn)擊的狀態(tài)

各部分的代碼如下:
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" style="display: inline-block;margin-left: 210px;"></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代碼:
//點(diǎn)擊顯示選擇條數(shù)的div
var showFlag = true;
var numcount = 1;//默認(rèn)第一頁
var dataLength =10000;
$('#dataLength').text(dataLength);
var allCount = Math.ceil(dataLength / 10);
console.log(allCount);
//分頁跳轉(zhuǎn)
$('.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;
}
})
//點(diǎn)擊選擇條數(shù)
//
$('.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' + ')'
})
})
//點(diǎn)擊首頁
$('.firstPage').click(function () {
numcount = 1;
$('.showPage').text(numcount);
firstDis(true, 'not-allowed', '0.5')
lastDis(false, 'pointer', '1')
})
//點(diǎn)擊上一頁
$('.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')
}
})
//點(diǎn)擊下一頁
$('.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')
}
})
//點(diǎn)擊尾頁
$('.lastPage').click(function () {
numcount = allCount
$('.showPage').text(allCount);
firstDis(false, 'pointer', '1')
lastDis(true, 'not-allowed', '0.5')
})
//當(dāng)頁碼為1,禁止點(diǎn)擊的函數(shù)
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
})
}
//當(dāng)頁碼為20,禁止點(diǎn)擊的函數(shù)
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('輸入錯(cuò)誤');
e.target.value = ''
}
}
})
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js獲取系統(tǒng)的根路徑實(shí)現(xiàn)介紹
js如何獲取系統(tǒng)的根路徑,在本文給出了詳細(xì)的方法,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-09-09
在for循環(huán)中l(wèi)ength值是否需要緩存
這篇文章主要介紹了在for循環(huán)中l(wèi)ength值是否需要緩存,需要的朋友可以參考下2015-07-07
javascript實(shí)現(xiàn)列表滾動(dòng)的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)列表滾動(dòng)的方法,較為詳細(xì)的分析了javascript實(shí)現(xiàn)列表滾動(dòng)的頁面布局及javascript滾動(dòng)效果的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
javascript簡單實(shí)現(xiàn)圖片預(yù)加載
本文是給大家分享一段簡單的實(shí)現(xiàn)圖片預(yù)加載技術(shù)的javascript代碼,超級(jí)精簡,卻很實(shí)用,這里推薦給大家2014-12-12
uploadify在Firefox下丟失session問題的解決方法
在用uploadify上傳插件時(shí)遇到了一個(gè)問題,在讀session時(shí)認(rèn)為沒有權(quán)限而被攔截了,后來在后臺(tái)打印登錄時(shí)產(chǎn)生session的id和上傳時(shí)讀取session的id,解決方法如下,感興趣的朋友可以了解下2013-08-08

