• WEB前端组件思想【分页】


    DEMO1:

     

     很早就想写一些功能性的组件,无奈技术有限一点一点的边工作,边学。

    近日工作中用到分页功能,当然由于加快业务进度,第一选择肯定是选择插件,但是实用性来说,还是有那么一点不适合。毕竟插件是通用的。

    经过几日加班后回家再熬夜学习。稍有收获。

    从最简单的写起:

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="UTF-8">
      5         <title></title>
      6         <style type="text/css">
      7             a{
      8                 margin: 6px;
      9             }
     10         </style>
     11         <script type="text/javascript">
     12         //接之前的逻辑判断  如果 nownum 1了怎么办  变2了  最前也变成 -1 0
     13         //必须再加判断
     14         
     15               window.onload = function()
     16               {
     17                    page({
     18                        id:"div1",
     19                        nowNum:5,
     20                        allNum:10,
     21                        callback:function(now,all){
     22                            alert("当前页"+now+"总共页"+all)
     23                        }
     24                    })
     25                    function page(opt)
     26                    {
     27                        if(!opt.id){
     28                            return false;
     29                        }
     30                        var obj = document.getElementById(opt.id);
     31                        var nowNum = opt.nowNum || 1;
     32                        var allNum = opt.allNum ||5;
     33                        //必须判断回调是否存在;
     34                        var callback= opt.callback || function(){};
     35                        //写首页  上一页 大于6才能从中间开始向2边扩散
     36                        if (nowNum >4 && allNum >=6) {
     37                            var oA = document.createElement("a");
     38                            oA.href = "#"+1;
     39                            oA.innerHTML= "首页";
     40                            obj.appendChild(oA);
     41                        }
     42                        //上一页  大于等于2
     43                            if (nowNum >=2 ) {
     44                            var oA = document.createElement("a");
     45                            oA.href = "#"+(nowNum-1);
     46                            oA.innerHTML= "上一页";
     47                            obj.appendChild(oA);
     48                        }
     49                        
     50                        
     51                        if ( allNum<=5) {
     52                            for (var i=1;i<=allNum;i++) {
     53                                var oA = document.createElement("a");
     54                                 oA.href = "#"+i;
     55                                if (nowNum == i) {
     56                                    oA.innerHTML = i;
     57                                }else{
     58                                    oA.innerHTML = "["+i+"]";
     59                                }
     60                                obj.appendChild(oA);
     61                            }
     62                            
     63                        }else{
     64                            for (var i=1;i<=5;i++) {
     65                                var oA = document.createElement("a");
     66                                if(nowNum == 1 || nowNum == 2)
     67                                {
     68                                    oA.href = "#"+i;
     69                                    if(nowNum == i){
     70                                         oA.innerHTML = i;
     71                                    }else{
     72                                          oA.innerHTML = "["+i+"]";
     73                                    }
     74                                    obj.appendChild(oA);
     75                                }  //判断最后2页的值  找准规律   6 7 8 9 10
     76                                else if((allNum - nowNum) ==0 || (allNum - nowNum) ==1){
     77                                    oA.href = "#"+ (allNum-5+i);
     78                                    //重点分析 判断 最后2项  9的时候  10的时候
     79                                    if((allNum - nowNum) ==0 && i ==5 ){
     80                                         oA.innerHTML = (allNum -5 +i);
     81                                    }else if((allNum - nowNum) ==1 && i ==4){
     82                                        oA.innerHTML = (allNum -5 +i);
     83                                    }
     84                                    else{
     85                                          oA.innerHTML = "["+(allNum-5+i)+"]";
     86                                    }
     87                                    obj.appendChild(oA);
     88                                    
     89                                }
     90                                else{
     91                                    oA.href = "#"+ (nowNum-3 + i);
     92                                    if (nowNum == (nowNum-3 + i)) {
     93                                        oA.innerHTML = (nowNum-3 + i);
     94                                    }else{
     95                                        oA.innerHTML = "["+(nowNum-3 + i)+"]";
     96                                    }
     97                                }
     98                                    obj.appendChild(oA);
     99                                
    100                            }
    101                        }
    102                         // 下一页   
    103                    if ((allNum-nowNum)>=1) {
    104                        var oA = document.createElement("a");
    105                            oA.href = "#"+(nowNum+1);
    106                            oA.innerHTML= "下一页";
    107                            obj.appendChild(oA);
    108                    }
    109                    //尾页 为什么要大于6   如果只有5张就没必要
    110                    if ((allNum-nowNum)>=3 && allNum >=6) {
    111                        var oA = document.createElement("a");
    112                            oA.href = "#"+ allNum;
    113                            oA.innerHTML= "尾页";
    114                            obj.appendChild(oA);
    115                    }    
    116                    callback(nowNum,allNum);
    117                        var aA = document.getElementsByTagName("a");
    118                        for (var i=0; i<aA.length;i++) {
    119                            aA[i].onclick=function(){
    120                                //alert(this.getAttribute("href").substring(1));
    121                                var nowNum = parseInt(this.getAttribute("href").substring(1));
    122                                obj.innerHTML=""; //清空整个之后重新生成
    123                                page({
    124                                    id:opt.id,
    125                                    nowNum:nowNum,
    126                                    allNum:allNum,
    127                                    callback:callback
    128                                })
    129                                //阻止默认事件
    130                                return false;
    131                            }
    132                        }
    133                        
    134                    }
    135               }
    136         </script>
    137     </head>
    138     <body>
    139         <div id="div1"></div>
    140     </body>
    141 </html>

    稍微再加点料:

  • 相关阅读:
    cocoapods使用遇到的一些问题
    so
    UITextField的各种属性方法介绍
    <<第1章 初识JAVA>>
    《第16章 复习》
    《第17章 图书管理系统》
    《第15章 字符串》
    《第13章 猜拳游戏》
    《第14章 带参数的方法》
    《第12章 类的无参方法》
  • 原文地址:https://www.cnblogs.com/h5monkey/p/6007553.html
Copyright © 2020-2023  润新知