分页界面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
.firs{ color:#f00; margin-left:5px; cursor:pointer}
.last{ color:green; margin-left:5px; cursor:pointer}
.prev{ color:#fc0; margin-left:5px;cursor:pointer }
.next{ color:#fcc; margin-left:5px; cursor:pointer}
.norm{ margin-left:5px; cursor:pointer}
.sele{ margin-left:5px;font-weight:bold;cursor:pointer}
</style>

</head>

<body>
<div id="panel"></div>

<script>

function Pager() {
    var o =this;

    o.setting = {
        p: 1,    //当前锁定页
        pc: 0,   //总页数
        size: 5, //每页的页码数量
        fun: function (p) { } //外部调用的function
    }

    o.css = {
        firs: 'firs',//首页 className
        last: 'last',//末页 className
        prev: 'prev',//上一页 className
        next: 'next',//下一页 className
        norm: 'norm',//未选中页 className
        sele: 'sele' //选中页 className
    }

    var getSpan = function () {
        return document.createElement("span");
    }

    var getP = function (p, txt) {
        txt = txt || p;
        var _span = getSpan();
        _span.innerHTML = txt;
        _span.setAttribute("p", p);
        _span.onclick = function () {
   o.setting.p = p;
            o.setting.fun(this.getAttribute("p"));
        }

        return _span;
    }

    var getCSSP = function (p) {
        var CSSP = getP(p);
        if (p == o.setting.p) {
            CSSP.className = o.css.sele;
        } else {
            CSSP.className = o.css.norm;
        }
  
        return CSSP;
    }

 //获得当前设置下的页码 html 元素
    o.get = function () {
        var _docFrag = document.createDocumentFragment();
        //上一页
        if (o.setting.p > 1) {
            var _firstP = getP(1, '首页');
            _firstP.className = o.css.firs;
            _docFrag.appendChild(_firstP);
  
            var _prevP = getP(o.setting.p - 1, '上一页');
            _prevP.className = o.css.prev;
            _docFrag.appendChild(_prevP);
        }

        if (o.setting.pc < o.setting.size) {
            for (var p = 1; p <= o.setting.pc; p++) {
                var _span = getCSSP(p);
                _docFrag.appendChild(_span);
            }

        } else {
   
            var star_p = o.setting.p - (o.setting.size - 1) / 2;
   if(star_p>0){
    for (var i = 0; i < o.setting.size; i++) {
     var p = star_p + i;
     if (p <= o.setting.pc) {
      var _span = getCSSP(p);
      _docFrag.appendChild(_span);
     }
    }
   }else{
    for(var p = 1; p<= o.setting.size;p++){
     var _span = getCSSP(p);
     _docFrag.appendChild(_span);
    }
   }
        }

        //下一页
        if (o.setting.p < o.setting.pc) {
            var _nextP = getP(o.setting.p + 1, '下一页');
            _nextP.className = o.css.next;
            _docFrag.appendChild(_nextP);

            var _lastP = getP(o.setting.pc, '末页');
            _lastP.className = o.css.last;
            _docFrag.appendChild(_lastP);
        }


        return _docFrag;
    }
}

//demo
var panel = document.getElementById('panel');
var p = new Pager();
p.setting.p = 20;  //设置当前锁定页 为 20
p.setting.pc = 30; //设置 总页数 为 30
p.setting.fun = function(p_num){ //当点击 某页的时候 触发的函数
 //ajax.ashx?action=getmsg&p=p_num
 
 panel.innerHTML = '';
 panel.appendChild(p.get());
}
panel.appendChild(p.get()); //把页码append 到 容器中

</script>


</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值