分享一个自己写的简单的javascript分页组件
来源: 阅读:1328 次 日期:2015-02-27 13:33:39
温馨提示: 小编为您整理了“分享一个自己写的简单的javascript分页组件”,方便广大网友查阅!

这篇文章主要分享一个自己写的简单的javascript分页组件,效果十分不错,代码也很详尽,这里推荐给小伙伴们。

自己写的一个简单的分页组件,主要功能还有实现都在JS中,html页面中只用增加一个放置生成分页的DIV,并给定容器的id.

html结构如下:

代码如下:

<ul class="pagination" id="pageDIV">

</ul>

class="pagination" 给定了分页的样式,

id="pageDIV"用于放置JS生成的分页

CSS结构如下:

代码如下:

.pagination{

margin-top: 10px;

margin-bottom: 10px;

display: inline-block;

padding-left: 0;

margin: 20px 0;

border-radius: 4px;

}

.pagination>li {

display: inline;

}

.pagination>li:first-child>a{

margin-left: 0;

border-top-left-radius: 4px;

border-bottom-left-radius: 4px;

}

.pagination>li>a{

position: relative;

float: left;

padding: 6px 12px;

margin-left: -1px;

line-height: 1.42857143;

color: #337ab7;

text-decoration: none;

background-color: #fff;

border: 1px solid #ddd;

cursor: pointer;

}

.pagination>li>a.navcur{

background: #cccccc;

color: #ffffff;

}

下面是JS结构,注意要引用JQuery

代码如下:

/**

* @pageContentID 渲染分页的DIV元素

* @curPage 当前开始页

* @totalCount 总数量

* @pageRows 每页显示数量

* @callback 显示数据的回调函数

*/

function PageList(pageContentID,option){

this.pageContentID=document.getElementById(pageContentID);

this.curPage=option.curPage;

this.totalCount=option.totalCount;

this.pageRows=option.pageRows;

this.callback=option.callback;

this.pageSize=Math.ceil(this.totalCount/this.pageRows);

}

PageList.prototype={

init:function(){

this.renderbtn();

},

firstpage:function(){

var _self=this;

_self._firstpage=document.createElement("li");

_self._firstpageA=document.createElement("a");

_self._firstpageA.innerHTML="首页";

_self._firstpage.appendChild(_self._firstpageA);

this.pageContentID.appendChild(_self._firstpage);

_self._firstpage.onclick=function(){

_self.gotopage(1);

}

},

lastpage: function () {

var _self=this;

_self._lastpage=document.createElement("li");

_self._lastpageA=document.createElement("a");

_self._lastpageA.innerHTML="尾页";

_self._lastpage.appendChild(_self._lastpageA);

this.pageContentID.appendChild(_self._lastpage);

_self._lastpage.onclick= function () {

_self.gotopage(_self.pageSize);

}

},

prewpage: function () {

var _self=this;

_self._prew=document.createElement("li");

_self._prewA=document.createElement("a");

_self._prewA.innerHTML="<<";

_self._prew.appendChild(_self._prewA);

this.pageContentID.appendChild(_self._prew);

_self._prew.onclick= function () {

if(_self.curPage>1){

_self.curPage--;

}

_self.callback.call(this,this.curPage);

_self.init();

console.log(_self.curPage);

}

},

nextpage: function () {

var _self=this;

_self._next=document.createElement("li");

_self._nextA=document.createElement("a");

_self._nextA.innerHTML=">>";

_self._next.appendChild(_self._nextA);

this.pageContentID.appendChild(_self._next);

_self._next.onclick= function () {

if(_self.curPage<_self.pageSize){

_self.curPage++;

}

_self.callback.call(this,this.curPage);

_self.init();

console.log(_self.curPage);

}

},

pagenum: function () {

var _self=this;

if(this.pageSize<=10){

for(var i= 1,len=this.pageSize;i<=len;i++){

_self._num=document.createElement("li");

_self._numA=document.createElement("a");

_self._numA.innerHTML=i;

_self._num.appendChild(_self._numA);

this.pageContentID.appendChild(_self._num);

_self._num.onclick= function () {

var curpage = $(this).text();

_self.gotopage(curpage);

}

}

}

else{

if(_self.curPage<=10){

for(var i= 1;i<=10;i++){

_self._num=document.createElement("li");

_self._numA=document.createElement("a");

_self._numA.innerHTML=i;

_self._num.appendChild(_self._numA);

this.pageContentID.appendChild(_self._num);

_self._num.onclick= function () {

var curpage = $(this).text();

_self.gotopage(curpage);

}

}

}

else if(_self.curPage>10&&_self.curPage<=this.pageSize){

if(this.pageSize<Math.ceil(_self.curPage/10)*10){

for(var i=Math.floor(_self.curPage/10)*10+1;i<=this.pageSize;i++){

if(_self.curPage>this.pageSize)

return;

_self._num=document.createElement("li");

_self._numA=document.createElement("a");

_self._numA.innerHTML=i;

_self._num.appendChild(_self._numA);

this.pageContentID.appendChild(_self._num);

_self._num.onclick= function () {

var curpage = $(this).text();

_self.gotopage(curpage);

}

}

}else{

if(Math.ceil(_self.curPage/10)*10==_self.curPage){

for(var i=_self.curPage-9;i<=_self.curPage;i++){

_self._num=document.createElement("li");

_self._numA=document.createElement("a");

_self._numA.innerHTML=i;

_self._num.appendChild(_self._numA);

this.pageContentID.appendChild(_self._num);

_self._num.onclick= function () {

var curpage = $(this).text();

_self.gotopage(curpage);

}

}

}else{

for(var i=Math.floor(_self.curPage/10)*10+1;i<=Math.ceil(_self.curPage/10)*10;i++){

_self._num=document.createElement("li");

_self._numA=document.createElement("a");

_self._numA.innerHTML=i;

_self._num.appendChild(_self._numA);

this.pageContentID.appendChild(_self._num);

_self._num.onclick= function () {

var curpage = $(this).text();

_self.gotopage(curpage);

}

}

}

}

}

}

$(".pagination li").each(function(){

if($(this)[0].innerText==_self.curPage){

$(".pagination li").children("a").removeClass("navcur");

$(this).children("a").addClass("navcur");

}

});

},

gotopage: function (curpage) {

this.curPage=curpage;

this.callback.call(this,this.curPage);

this.init();

console.log(this.curPage);

},

renderbtn: function () {

$(".pagination").html("");

this.firstpage();

this.prewpage();

this.pagenum();

this.nextpage();

this.lastpage();

}

};

$(function(){

var pager = new PageList("pageDIV",{

curPage:1,

totalCount:26,

pageRows:1,

callback:callbackFuc

});

pager.init();

});

function callbackFuc(curpage){

}

说明:

此分页是以10页为标准,低于10页的时候全部显示,大于10页的时候,进行翻页显示余下页数.

调用方法:

代码如下:

$(function(){

var pager = new PageList("pageDIV",{

curPage:1,

totalCount:26,

pageRows:1,

callback:callbackFuc

});

pager.init();

});

以上就是本分页组件的核心代码了,希望小伙伴们能够喜欢。

更多信息请查看IT技术专栏

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map