整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Jquery如何模擬分頁-小白進階

          Jquery如何模擬分頁-小白進階

          擊右上方紅色按鈕關注“web秀”,讓你真正秀起來

          前言

          作為前端開發,很多時候,后臺給的數據不是我們想要的,遇到好說話的,給你改,遇到那種不好說話的,只能自己動手了。今天就來給大家講講前端如何來模擬分頁,下面注釋很詳細,這里就不做過多的介紹了。

          html容器

          <div id="docList"></div>
          <div class="more" id="docLoadMore">加載更多</div>
          

          js邏輯處理

          var data={
           // 分頁數據
           docPages: {
           pageNo: 1, // 當前頁碼
           pageSize: 3 // 一頁多少條數據
           },
           // 模擬數據
           docList: [{
           name: '這是我的第1篇文章'
           },{
           name: '這是我的第2篇文章'
           },{
           name: '這是我的第3篇文章'
           },{
           name: '這是我的第4篇文章'
           },{
           name: '這是我的第5篇文章'
           },{
           name: '這是我的第6篇文章'
           },{
           name: '這是我的第7篇文章'
           },{
           name: '這是我的第8篇文章'
           }]
          }
          $('#docLoadMore').on('click',function(){
           function getHtml(name) {
           // html模板
           var tpl='<div class="load-li dis-flex clearfix">'+
           '<span class="align-left">'+
           '<img src="../images/productDetails/yh_product_wendang_icon@2x.png" / class="word-icon">'+
           '</span>'+
           '<span class="color-66 flex1 li-content fs-01">'+name+'</span>'+
           '<span class="align-right">'+
           '<img src="../images/productDetails/yh_product_xiazai_icon@2x.png" / class="load-icon">'+
           '</span>'+
           '</div>';
           return tpl;
           }
          
          
           var pageNo=data.docPages.pageNo;
           var pageSize=data.docPages.pageSize;
           // 計算最多分多少頁
           // 總條數 / 一頁多少條=可以分多少頁 如果是小數 向上取整(Math.ceil)
           let maxPage=Math.ceil(data.docList.length / pageSize);
           // 如果頁面大于總頁數return
           if (pageNo > maxPage) {
           console.log('沒有更多了');
           return;
           }
           // 計算第n頁時取第幾條到第幾條數據
           var startIndex=(pageNo-1) * pageSize; // 下標從0開始,所以-1
           // 1:(1-1)*2=>0
           // 2:(2-1)*2=>2
           // 3:(3-1)*2=>4
           // 4:(4-1)*2=>6
           var endIndex=pageNo * pageSize - 1;
           // 1: 1*2=>2
           // 2: 2*2=>4
           // 3: 3*2=>6
           data.docPages.pageNo ++;
           // 根據下標找到對應的頁碼的數據
           var newPage=vm.data.docList.slice(startIndex, endIndex+1);
           let html='';
           newPage.map(function(item){
           html +=getHtml(item.name);
           });
           // 向元素后面插入準備好的html內容
           $('#docList').append(html);
          })
          
          

          中間有部分是模板,看的不是很清楚,看下面截圖。

          上面代碼沒有初始化第一頁數據,點擊一下才會出來第一頁的數據,所以可以在頁面加載完畢,自動觸發一下點擊事件

          $('#docLoadMore').trigger('click');
          

          是不是很簡單了,只要自己動手操作,發現事實都很簡單。

          公告

          喜歡小編的點擊關注,了解更多知識!

          源碼地址請點擊下方“了解更多”

          要涉及到數據查詢,通常我們都會進行分頁查詢。

          假設你的表中有上百萬條記錄,不分頁的話,我們不可能一次性將所有數據全部都載入到前端吧,那前后端都早就崩潰了。

          結合 Spring

          Spring 和 Vue 都提供了開箱即用的分頁功能。

          Spring 主要用來處理后端的分頁查詢,VUE 主要在前端展示頁面和進行下一個頁面的查詢。

          有關后端 Spring 如何進行分頁查詢的方法,請參考:Spring Data @Repository 的分頁查詢 中的文章。

          如果你配置得當,Spring 會將整個查詢的頁面信息發送給前端。

          比如我們說的這一部分,在這部分中,我們會知道總共查詢的記錄有多少,每一頁的大小,一共有多少頁,當前是第幾頁等分頁最重要的信息。

          VUE

          VUE 的前端可以用 Pagination 這個組件 Pagination | Components | BootstrapVue

          我們直接在前端調用模板,將參數設置進來就完成了。

          代碼可以精簡到只有下面幾句話:

                      <b-pagination
                          v-model="pagedData.number"
                          :total-rows="pagedData.totalElements"
                          :per-page="pagedData.size"
                          @click="pageSearch(pagedData.number -1)"
                          class="pagination pagination-rounded justify-content-end mb-2"
                      ></b-pagination>
          

          不用重復做無用的事情了。

          第一個參數是當前的頁面是第幾頁。

          第二個參數為一共有多少條記錄。

          第三個參數為當前分頁的頁面大小。

          第四個參數為,如果頁碼被單擊了,我們會觸發一個什么樣的函數,通常這個函數就是通過 AJAX 的調用到后臺再獲取一次數據。

          是不是簡單到令人發指。

          如果沒有這個模板的話,我們需要手寫分頁,還要算頁面編碼,真心沒必要。

          如果想使用不同的 CSS 的話,在分頁模板中加入自己的 CSS 就可以了。

          我們的分頁效果為

          頁面看起來還非常干凈喔。

          站分頁功能是必不可少的,一般用在列表頁面中,javascript實現分頁效果,效果如下:

          實現代碼

          html結構:

          CSS樣式:

          javascript:


          主站蜘蛛池模板: 日韩美一区二区三区| 精品一区二区三区中文字幕| 亚洲AV网一区二区三区| 无码丰满熟妇浪潮一区二区AV| 国产一区二区三区内射高清| 国产日韩一区二区三免费高清| 国产精品制服丝袜一区| 亚洲乱码一区二区三区在线观看| 免费看AV毛片一区二区三区| 午夜福利一区二区三区高清视频| 国产激情一区二区三区四区 | 精品国产天堂综合一区在线| 亚洲国产美女福利直播秀一区二区| 91大神在线精品视频一区| 国产精品香蕉一区二区三区 | 亚洲综合一区二区三区四区五区| 无码日韩人妻AV一区免费l| 亚欧免费视频一区二区三区 | 久久久91精品国产一区二区三区| 视频一区视频二区日韩专区| 国产精品视频免费一区二区| 一区二区三区四区视频| 国产一区二区三区美女| 国产成人一区在线不卡| 一色一伦一区二区三区| 国内精品无码一区二区三区| 亚洲免费一区二区| 性色A码一区二区三区天美传媒 | 亚洲av乱码一区二区三区按摩| 亚洲综合一区无码精品| 国产凸凹视频一区二区| 在线观看午夜亚洲一区| 韩国资源视频一区二区三区| 一区二区三区电影网| 国产未成女一区二区三区 | 91午夜精品亚洲一区二区三区| 加勒比精品久久一区二区三区| 国产视频一区在线播放| 人妻精品无码一区二区三区| 波多野结衣AV无码久久一区| 亚洲AV日韩综合一区|