jQuery伪分页效果

如图,我们首先分析在一个页面存放4条内容,其余的超出隐藏(因为这里没有后台数据,所以我们把内容‘写死’),然后就是下面两个按钮(这里我们不用button,因为button有自带的提交功能),然后我们可以把首页写成1,总页数使用JQ实现,为此,我们先把页面跟样式写好

<div class="main">
        <div class="item">
            <ul class="clear">
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <li>9</li>
                <li>10</li>
                <li>11</li>
                <li>12</li>
                <li>13</li>
                <li>14</li>
                <li>15</li>
                <li>16</li>
                <li>17</li>
                <li>18</li>
                <li>19</li>
                <li>20</li>
                <li>21</li>
                <li>22</li>
                <li>23</li>
                <li>24</li>
                <li>25</li>
                <li>26</li>
                <li>27</li>
                <li>28</li>
            </ul>
        </div>
        <div class="page_btn clear">
            <span class="page_box">
                <a class="prev">上一页</a><span class="num"><span class="current_page">1</span><span style="padding:0 3px;">/</span><span class="total"></span></span><a class="next">下一页</a>
            </span>
        </div>
    </div>
 .main{
        width:800px;
        zoom:1;
        margin:0 auto;
        }
    .item{
        width:800px;
        overflow:hidden;
        }
    ul{
        padding:0;
        width:860px;
        zoom:1;
        }
    .clear{
        zoom:1;
        }
    .clear:after{
        content:"";
        display:block;
        height:0;
        clear:both;
        visibility:hidden;
        }
    ul li{
        list-style-type:none;
        float:left;
        background:#F69;
        font-size:60px;
        text-shadow:1px 1px 3px #555;
        width:380px;
        height:200px;
        margin:10px 40px 10px 0;
        line-height:200px;
        text-align:center;
        color:#fff;
        }
    .page_btn{
        padding-top:20px;
        }
    .page_btn a{
        cursor:pointer;
        padding:5px;
        border:solid 1px #ccc;
        font-size:12px;
        }
    .page_box{
        float:right;
        }
    .num{
        padding:0 10px;
        }

这样我们写出来的效果应该是这样,然后我们在去写它的逻辑

$(document).ready(function(){
            $("ul li:gt(3)").hide();//初始化,前面4条数据显示,其他的数据隐藏。
            var total_q=$("ul li").index()+1;//总数据
            var current_page=4;//每页显示的数据
            var current_num=1;//当前页数
            var total_page= Math.round(total_q/current_page);//总页数  
            var next=$(".next");//下一页
            var prev=$(".prev");//上一页
            $(".total").text(total_page);//显示总页数
            $(".current_page").text(current_num);//当前的页数

我们可以先规定一页只显示4条数据,其余的隐藏,让后在把当前页数跟总页数显示出来,最后,我们再去实现“上一页”“下一页”,在上一页中,我们判断在第一页的时候就停止,而“下一页”,我们判断在最后一页时就停止,所以

$('.next').on('click',function(){
         if(current_num==7){
             return false;
         }else{
             $('.current_page').text(++current_num);
             $.each($('ul li'), function(index) {
                 var start = current_page * (current_num - 1);
                 var end = current_page * current_num;
                 if(index >= start && index<end){
                     $(this).show()
                 }else{
                     $(this).hide();
                 }
             });
         }
     });
     $('.prev').on('click',function(){
         if(current_num == 1){
             return false;
         }else{
             $('.current_page').text(--current_num);
             $.each($('ul li'), function(index) {
                 var start = current_page * (current_num+1);
                 var end = current_page * current_num;
                 if(index <= start && index > end){
                     $(this).show()
                 }else{
                     $(this).hide();
                 }
             });
         }
     })

其实,页数跟内容不是固定的,在项目中,这些数据都会从后台反馈给你的

 

posted @ 2019-04-11 15:39  Aleno  阅读(387)  评论(0编辑  收藏  举报