填坑之路:前端偽分頁

畢設(shè)是用ssm+maven來寫的肺稀,半路上車第股,遇到了分頁的需求。
由于僅僅是畢設(shè)话原,設(shè)計(jì)的數(shù)據(jù)量不大夕吻,為了多個(gè)分頁的功能(說不定就因?yàn)檫@個(gè)功能加分呢。繁仁。涉馅。),但又不想去動(dòng)sql黄虱,寫limit稚矿,于是靈機(jī)一動(dòng),先把數(shù)據(jù)取到前端捻浦,利用append來動(dòng)態(tài)渲染頁面晤揣,實(shí)現(xiàn)一個(gè)偽分頁的效果豈不是妙哉。

話不多說朱灿,上代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <script type="text/javascript" src="js/jquery-2.1.4.min.js" ></script>
        <script type="text/javascript" src="js/Centerm.js" ></script>
        <link rel="stylesheet" href="css/Centerm.css" />
        <title>分頁</title>
        <style>
            .table-part{
                overflow: hidden;
            }
        </style>
    </head>
    <body>
        <div class="table-part">
            <div class="table_head">
                <ul class="list-head list">
                    <li class="choose-man choose-all">選擇</li>
                    <li class="man-name">姓名</li>
                    <li class="man-email">郵箱</li>
                    <li class="man-position">職位</li>
                    <li class="man-branch">所屬部門</li>
                </ul>
            </div>
            <div class="table_body"></div>
            
            <div class="page"></div>
        </div>
        <script>
            $(function(){
                // 模擬了從數(shù)據(jù)庫中返回的Json數(shù)據(jù)
                var user = [{"id":1,"account":"yangyan@163.com","name":"啦啦啦","password":"6223A9E9F170AD4AC5FCDBD748020B72E9CCBC30877F929C9C6A0D7F","status":2,"deptId":1,"grade":1,"department":{"dId":1,"level":0,"dName":"升騰智能研發(fā)中心","pid":null}},{"id":17,"account":"111@test.com","name":"111","password":"F20941E2CEAAFF0AEE7B48500E7B85472155FFDF2E72DB9075CEBB8E","status":2,"deptId":1,"grade":1,"department":{"dId":1,"level":0,"dName":"升騰智能研發(fā)中心","pid":null}},{"id":18,"account":"122@test.com","name":"122","password":"5BE1612EAA0D56FDE474AE057E4E8270067DD57CD7ADEFAA92271B70","status":2,"deptId":1,"grade":1,"department":{"dId":1,"level":0,"dName":"升騰智能研發(fā)中心","pid":null}},{"id":4,"account":"yjz@test.com","name":"yjz","password":"A59E1F262DED280DC434CE1244B3E8D1D1434A7C751316D087EF5FE6","status":2,"deptId":101,"grade":2,"department":{"dId":101,"level":1,"dName":"產(chǎn)品經(jīng)理組","pid":1}},{"id":8,"account":"22@test.com","name":"22","password":"318B0D08889C7C3C4382065FF1DCF79DAE78AC466DDC683D92236C6B","status":2,"deptId":10207,"grade":2,"department":{"dId":10207,"level":2,"dName":"深圳研究中心","pid":102}},{"id":7,"account":"11@test.com","name":"11","password":"FECB6EFE632F3451D8E7C462A33EB57386CDDC9D602C6192BE18D941","status":2,"deptId":10301,"grade":2,"department":{"dId":10301,"level":2,"dName":"軟件-接口應(yīng)用部","pid":103}},{"id":2,"account":"yy@test.com","name":"哦哦哦","password":"8C20AEF91678539D184392500AD135839355F4B61C9D10566BE06658","status":2,"deptId":10201,"grade":3,"department":{"dId":10201,"level":2,"dName":"PC組","pid":102}},{"id":6,"account":"y@test.com","name":"olabala","password":"CB6CF3CE0118CE422B712B6FF95B6ADAAA3345844B9D5DD2E240A60C","status":2,"deptId":10201,"grade":3,"department":{"dId":10201,"level":2,"dName":"PC組","pid":102}},{"id":3,"account":"test@163.com","name":"test","password":"B16006741243AB13CE87E50E96E1BAAE291252523E7A7439771AF814","status":2,"deptId":10202,"grade":3,"department":{"dId":10202,"level":2,"dName":"認(rèn)證研究組","pid":102}},{"id":9,"account":"33@test.com","name":"33","password":"0D636329AA7B169155B58A8018746D477D3A5DD629775D749A275E79","status":2,"deptId":10206,"grade":3,"department":{"dId":10206,"level":2,"dName":"供應(yīng)商管理組","pid":102}},{"id":5,"account":"aaa@153.com","name":"yyy","password":"A8D912D74516037EAF00C0B36F0F41B3CF654FB663C1B636325725D2","status":2,"deptId":10206,"grade":3,"department":{"dId":10206,"level":2,"dName":"供應(yīng)商管理組","pid":102}},{"id":14,"account":"88@test.com","name":"88","password":"D10695CCBD2D39D5F5A69475E0DA802009E3C24E638C696CD94DF54C","status":2,"deptId":10301,"grade":3,"department":{"dId":10301,"level":2,"dName":"軟件-接口應(yīng)用部","pid":103}},{"id":13,"account":"77@test.com","name":"77","password":"CD97FC8794E0AAB9ADEB0354DC2929257A56A4DA5CA7E0042506E3C1","status":2,"deptId":10303,"grade":3,"department":{"dId":10303,"level":2,"dName":"技術(shù)研究部","pid":103}},{"id":12,"account":"66@test.com","name":"66","password":"64D2D97D56AB295C55C6C1B48B826E8551AB5990C83AD8935AD4416F","status":2,"deptId":10401,"grade":3,"department":{"dId":10401,"level":2,"dName":"軟件-業(yè)務(wù)應(yīng)用部","pid":104}},{"id":11,"account":"55@test.com","name":"55","password":"6D8149E9B7C3BC3590A1D713270D224697A23BB501D4B5087F83D307","status":2,"deptId":10402,"grade":3,"department":{"dId":10402,"level":2,"dName":"軟件-應(yīng)用系統(tǒng)部","pid":104}},{"id":10,"account":"44@test.com","name":"44","password":"EDF05F312C733EC469878AF8DE4E8326D38A50073F48FFC24A8E8501","status":2,"deptId":10403,"grade":3,"department":{"dId":10403,"level":2,"dName":"質(zhì)量管理部","pid":104}}];
                var userList = renderUserData(user);
                
                var Count = userList.length; //記錄條數(shù)  
                var PageSize=10; //設(shè)置每頁示數(shù)目  
                var PageCount=Math.ceil(Count/PageSize); //計(jì)算總頁數(shù)  
                var currentPage =1; //當(dāng)前頁昧识,默認(rèn)為1
                
                if(PageCount > 1){
                    $('.page').show();
                    var pageHtml = '<a href="javascript:;" class="disable prev"><</a> '
                    
                    for(var j=1;j<=PageCount;j++){
                        if(currentPage == j){
                            pageHtml += '<a href="javascript:;" class="current">'+j+'</a>'
                        } else {
                            pageHtml += '<a href="javascript:;">'+j+'</a>'
                        }
                    }
                    pageHtml += '<a href="javascript:;" class="next">></a>';
                    $('.page').empty().append(pageHtml)
                } else {
                    $('.page').hide();
                }
                
                //默認(rèn)顯示第一頁
                renderPage($('.table_body'),userList,currentPage,PageSize);
                
                $('.page').on('click','a:not(.next):not(.prev)',function(){
                    currentPage = $(this).text();
                    $(".current").removeClass("current");
                    $(this).addClass("current");
                
                    disabledPageBtn();
                    
                    renderPage($('.table_body'),userList,currentPage,PageSize);
                })
                
                $('.page').on('click','.next:not(.disable)',function(){
                    currentPage += 1;
                    $(".current").removeClass("current").next('a:not(.next)').addClass('current');
                    
                    disabledPageBtn();
                    
                    renderPage($('.table_body'),userList,currentPage,PageSize);
                })
                
                $('.page').on('click','.prev:not(.disable)',function(){
                    currentPage -= 1;
                    $(".current").removeClass("current").prev('a:not(.prev)').addClass('current');
                    
                    disabledPageBtn();
                    
                    renderPage($('.table_body'),userList,currentPage,PageSize);
                })
            })
            // 將json數(shù)據(jù)拼接成html數(shù)組
            function renderUserData(data) {
                var pageData=[]; 
                if (data.length !== 0) {
                    for (let i = 0; i<data.length; i++) {
                        var jobPos = getPos(data[i].grade);
                        var dataHtml = '<ul class="list-content list">'
                                    +'<li class="choose-man">'
                                    +'<input name="select-items" type="checkbox" />'
                                    +'<input name="userId" class="userId" type="hidden" value="'+data[i].id+'"/>'
                                    +'</li>'
                                    +'<li class="man-name">'+data[i].name+'</li>'
                                    +'<li class="man-email email-type">'+data[i].account+'</li>'
                                    +'<li class="man-position">'+jobPos+'</li>'
                                    +'<li class="man-branch">'+data[i].department.dName+'</li>'
                                +'</ul>';
                        pageData.push(dataHtml);
                    }
                } else {
                    var dataHtml = '<div class="full-page">該部門下暫時(shí)還沒有員工!5涟恰跪楞!</div>';
                    pageData.push(dataHtml);
                }
                return pageData;
            }
            
            function getPos(grade){
                if(grade === 1) {
                    return "管理員";
                } else if(grade === 2){
                    return "主管";
                } else {
                    return "普通員工";
                }
            }
            // 渲染每頁內(nèi)容
            function renderPage(obj,data,currentPage,PageSize){
                obj.empty();
                for(var i=(currentPage-1)*PageSize;i<PageSize*currentPage;i++){    
                    obj.append(data[i]);  
                } 
            }
            // 判斷上頁、下頁按鈕是否可用
            function disabledPageBtn(){
                // 上頁
                if($('.current').prev('a').hasClass('prev')){
                    $(".prev").addClass("disable");
                } else {
                    $(".prev").removeClass("disable");
                }
                
                //下頁
                if($('.current').next('a').hasClass('next')){
                    $(".next").addClass("disable");
                } else {
                    $(".next").removeClass("disable");
                }
            }
            
        </script>
    </body>
</html>

沒投入太多時(shí)間去完善這個(gè)代碼侣灶,不過如果僅僅是基本的需求的話(切記數(shù)據(jù)量不要太大习霹,如果數(shù)據(jù)量很大我猜是會(huì)相當(dāng)耗資源),以上代碼就足夠用了炫隶。

效果:

page.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市阎曹,隨后出現(xiàn)的幾起案子伪阶,更是在濱河造成了極大的恐慌煞檩,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栅贴,死亡現(xiàn)場(chǎng)離奇詭異斟湃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)檐薯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門凝赛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坛缕,你說我怎么就攤上這事墓猎。” “怎么了赚楚?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵毙沾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我宠页,道長(zhǎng)左胞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任举户,我火速辦了婚禮烤宙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俭嘁。我一直安慰自己躺枕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布兄淫。 她就那樣靜靜地躺著屯远,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捕虽。 梳的紋絲不亂的頭發(fā)上慨丐,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音泄私,去河邊找鬼房揭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛晌端,可吹牛的內(nèi)容都是我干的捅暴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼咧纠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蓬痒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起漆羔,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤梧奢,失蹤者是張志新(化名)和其女友劉穎狱掂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亲轨,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趋惨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惦蚊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片器虾。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蹦锋,靈堂內(nèi)的尸體忽然破棺而出兆沙,到底是詐尸還是另有隱情,我是刑警寧澤晕粪,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布挤悉,位于F島的核電站,受9級(jí)特大地震影響巫湘,放射性物質(zhì)發(fā)生泄漏装悲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一尚氛、第九天 我趴在偏房一處隱蔽的房頂上張望诀诊。 院中可真熱鬧,春花似錦阅嘶、人聲如沸属瓣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抡蛙。三九已至,卻和暖如春魂迄,著一層夾襖步出監(jiān)牢的瞬間粗截,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工捣炬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熊昌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓湿酸,卻偏偏與公主長(zhǎng)得像婿屹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子推溃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容