js页码功能
css
*{ margin:0;
padding:0;
}
li{ list-style:none;
}
#ul1{ width:600px;
height:250px;
}
#ul1 li{ width:100px;
height:100px;
background:red;
float:left;
overflow:hidden;
margin:10px;
}
a{ margin:5px;
}
Html
【js页码功能】js
var json = {
title : [
'效果1',
'效果2',
'效果3',
'效果4',
'效果5',
'效果6',
'效果7',
'效果8',
'效果9',
'效果10',
'效果11',
'效果12',
'效果13',
'效果14',
'效果15',
'效果16',
'效果17',
'效果18',
'效果19',
'效果20',
'效果21',]
};
page({
id:'div1',
nowNum:1,//初始页面(当前页面)
pages:4,//一个页面显示数量
allNum:Math.ceil(json.title.length/4),//数据的总长度 / 一个页面的数量 = 页数(ceil是向上取整)
callBack:function(){}
});
function page(opt){
if(!opt.id){
return false;
}
var obj = document.getElementById(opt.id);
var nowNum = opt.nowNum||1;
var pages = opt.pages||5;
var allNum = opt.allNum||5;
var callBack = opt.callBack||function(){};
var Ul = document.getElementById('ul1');
Ul.innerHTML=''//先把之前的页面数据清空
// console.log(nowNum*pages-pages,nowNum*pages,'1111111111111111',nowNum,pages)
for(var i=(nowNum*pages-pages);
i<(nowNum*pages);
i++){//计算当前显示 所对应的当前数据
var oA = document.createElement('p');
if(!json.title[i]){
break;
}
oA.innerHTML=json.title[i]
Ul.appendChild(oA);
}if(nowNum>=4&&allNum>=6){//首页出现的情况,就是当现在的页码大于等于4并且总页码大于等于6时
var oA = document.createElement('a');
oA.href = 'https://www.it610.com/article/#1';
oA.innerHTML = '首页';
obj.appendChild(oA);
}
if(nowNum>=2){//只要页码大于等于2就会出现上一页
var oA = document.createElement('a');
oA.href = 'https://www.it610.com/article/#'+(nowNum - 1);
oA.innerHTML = '上一页';
obj.appendChild(oA);
}
if(allNum<=5){//因为我们让一页最多显示5个页码,所以,如果总页码小与等于5,就说明页码可以显示完全
for(var i=1;
i<=allNum;
i++){
var oA = document.createElement('a');
oA.href = 'https://www.it610.com/article/#'+i;
if(nowNum==i){
oA.innerHTML = i;
}else{
oA.innerHTML = '['+i+']';
}
obj.appendChild(oA);
}
}
else{//下面的情况是当总页码大于5的时候进行的分类
for(var i=1;
i<=5;
i++){
var oA = document.createElement('a');
if(nowNum == 1||nowNum==2){//在总页数大于5的情况下继续根据当前页进行细分。如果当前的页为1或者为2的时候
oA.href = 'https://www.it610.com/article/#'+i;
if(nowNum ==i){
oA.innerHTML = i;
}else{
oA.innerHTML = '['+i+']'
}
}else if((allNum - nowNum)==0||(allNum - nowNum)==1){//如果当前页为最后一页或者倒数第二页的时候,说明显示的5页即为最后5页,所以就是下面的公式
oA.href = 'https://www.it610.com/article/#'+(allNum - 5+i);
if((allNum - nowNum)==0&&i==5){
oA.innerHTML = (allNum - 5 + i);
}else if((allNum - nowNum)==1&&i==4){
oA.innerHTML = (allNum - 5 +i);
}else{
oA.innerHTML = '['+(allNum - 5 +i)+']'
}
}else{//当前页码处在5个页码的中间的时候
oA.href = 'https://www.it610.com/article/#'+(nowNum - 3 +i);
if(i==3){
oA.innerHTML = (nowNum - 3 + i);
}else{
oA.innerHTML = '['+(nowNum - 3 +i)+']'
}
}
obj.appendChild(oA);
}
}
if((allNum - nowNum)>=1){//如果总页数比当前页码大于等于1的时候显示‘下一页’
var oA = document.createElement('a');
oA.href = 'https://www.it610.com/article/#'+(nowNum+1);
oA.innerHTML = '下一页';
obj.appendChild(oA);
}
if((allNum - nowNum)>=3&&allNum>=6){//如果总页数比当前页码大于等于3并且总页码大于等于6的时候显示‘尾页’;
var oA = document.createElement('a');
oA.href = 'https://www.it610.com/article/#'+allNum;
oA.innerHTML = '尾页';
obj.appendChild(oA);
}
callBack(nowNum,allNum);
var aA = obj.getElementsByTagName('a');
for(var i=0;
i
推荐阅读
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 分享!如何分分钟实现微信扫二维码调用外部浏览器打开指定页面的功能
- Excel|Excel 2013 新增功能之瞬间填充整列数据!
- 3.css浮动
- springboot结合redis实现搜索栏热搜功能及文字过滤
- 随笔|随笔 心累了
- MQ(消息队列)功能介绍
- 关于iOS录屏功能躺过的坑,给有需要的人
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)
- 微信视频号iOS端大改版!5个月等待,20+项功能改动了解一下()