最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

html+vue.js 實現(xiàn)漂亮分頁功能可兼容IE

 更新時間:2020年11月07日 13:21:55   作者:echoyya  
功能比較簡單,在單一html中使用vue.js分頁展示數(shù)據,并未安裝腳手架,或使用相關UI框架,此時需要手寫一個分頁器,不失為最合理最便捷的解決方案,需要的朋友可以參考下

當功能比較簡單,在單一html中使用vue.js分頁展示數(shù)據,并未安裝腳手架,或使用相關UI框架,此時需要手寫一個分頁器,不失為最合理最便捷的解決方案

先看一下實現(xiàn)效果:

 

 上代碼:

1.簡單搞一搞 CSS,此處代碼有折疊
2.簡單搞一搞 HTML 

<div id="app" v-cloak @click="showOption=false">
 第{{pageIndex}}頁, 每頁顯示{{pageSize}}條
 <div v-show="pageTotalNum > 1" class="pageContainer">
  共{{dataListLength}}條
 <ul class="pagesInner">
  <li class="page" @click="prevOrNext(-1)"><span aria-hidden="true">&lt;</span></li>
  <li class="page" v-for="(item, index) in pages" :key="index" :class="{actived: item == pageIndex}" @click="selectPage(item)">
  <span>{{item}}</span>
  </li>
  <li class="page" @click="prevOrNext(1)"><span class="fa fa-chevron-right" aria-hidden="true">&gt;</span></li>
 </ul>
 <div class="page-size-box">
  <span @click.stop="showOption=!showOption">{{pageSize}}條/頁</span>
  <ul class="size-option" v-show="showOption">
  <li v-for="(item, index) in pageSizeList" :key="index" @click="pageSize=item;showOption=false">{{item}}條/頁</li>
  </ul>
 </div>
 跳至&nbsp;
  <form id="frm1">
   <input type="text" v-model="goToPage" style="text-align: center;">
  </form>
 &nbsp;頁&nbsp;
 button @click="handleGoToPage">確定</button>
 </div>
</div>

 3.搞事情啦 ~~~~

首先分析一下分頁功能的實現(xiàn)思路:

  • 首頁和尾頁始終顯示,

  • 通過數(shù)據總條數(shù)dataListLength及每頁顯示條數(shù)pageSize,計算出總頁數(shù)pageTotalNum

  • 監(jiān)聽watch一下,每頁顯示條數(shù)pageSize,重置當前頁碼pageIndex=1

  • 我設計的分頁每次最多顯示5個頁碼(大家可根據需求自行調整),剩余部分 ... 代替,并設置不可點擊,

  • 根據不同的總頁數(shù)和當前頁碼的切換,頁簽展示形態(tài)有所不同,展示形態(tài)如下圖對應序號展示

總頁數(shù) <= 1,不顯示分頁器
總頁數(shù) <= 5 && 總頁數(shù) > 1,顯示全部頁碼
總頁數(shù) > 5 && 當前頁面 <= 3 , 倒數(shù)第二個頁碼為...,頁碼從左往右計算
總頁數(shù) > 5 && 當前頁面 > 3 && 當前頁 < 總頁數(shù) - 3 , 正倒數(shù)第二個頁碼都為..., 頁碼以當前頁碼計算,±1
總頁數(shù) > 5 && 當前頁面 > 3 && 當前頁 > 總頁數(shù) - 3 , 正數(shù)第二個頁碼為..., 頁碼從右往左計算

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script> 	<!--兼容IE -->
<script>
 var app = new Vue({
 el: "#app",
 data: {
  pageIndex: 1,
  goToPage: '',
  // pageTotalNum: 16,
  dataListLength:147,
  pageSize:20,
  pageSizeList:[20,30,50,100],
  showOption:false
 },
 methods: {
  prevOrNext: function(n) {
  this.pageIndex += n
  this.pageIndex <= 1 ? this.pageIndex = 1 : this.pageIndex > this.pageTotalNum ? this.pageIndex = this.pageTotalNum : null
  },
  selectPage: function(n) {
  if (n === this.pageIndex) return
  if (typeof n === 'string') return
  this.pageIndex = n
  },
  handleGoToPage: function() {
  this.pageIndex = this.goToPage <= 1 ? 1 : this.goToPage - 0 >= this.pageTotalNum - 0 ? this.pageTotalNum :
  this.goToPage
  this.goToPage = this.pageIndex
  },
 },
 computed: {
  pageTotalNum:function(){
  return this.dataListLength % this.pageSize == 0 ? this.dataListLength / this.pageSize : Math.floor(this.dataListLength / this.pageSize) + 1
  },
  pages: function () {
  // 每次最多顯示5個頁碼
  var c = this.pageIndex
  var t = this.pageTotalNum
  var p = []
  for (var i = 1; i <= t; i++) {
   p.push(i)
  }
  var l = p.length
  if (l <= 5) { // 總頁數(shù)<=5,顯示全部頁碼
   return p
  } else if (l > 5 && c <= 3) { // 總頁數(shù)>5 && 當前頁面<=3
   return [1, 2, 3, 4, '...', t] 
  } else if (l > 5 && c > 3 && c <= l - 2) { // 總頁數(shù) > 5 && 當前頁面 > 3 && 當前頁 < 總頁數(shù) - 3
   return [1, '...', c - 2, c - 1, c, '...', t] 
  } else { // 總頁數(shù) > 5 && 當前頁面 > 3 && 當前頁 > 總頁數(shù) - 3
   return [1, '...', t - 3, t - 2, t - 1, t] 
  }
  },
 },
 watch:{
  pageSize:function(nv,ov){
  this.pageIndex = 1
  }
 }
 });
</script>

到此這篇關于html+vue.js 實現(xiàn)漂亮分頁功能可兼容IE的文章就介紹到這了,更多相關vue.js 分頁內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue實現(xiàn)Layui的集成方法步驟

    Vue實現(xiàn)Layui的集成方法步驟

    這篇文章主要介紹了Vue實現(xiàn)Layui的集成方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • VUE響應式原理的實現(xiàn)詳解

    VUE響應式原理的實現(xiàn)詳解

    這篇文章主要為大家詳細介紹了VUE響應式原理的實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • vue.js基于ElementUI封裝了CRUD的彈框組件

    vue.js基于ElementUI封裝了CRUD的彈框組件

    這篇文章主要介紹了vue.js基于ElementUI封裝了CRUD的彈框組件,問咋會給你圍繞主題展開詳細的內容介紹,感興趣的小伙伴可以參考一下
    2022-07-07
  • Vue 遞歸多級菜單的實例代碼

    Vue 遞歸多級菜單的實例代碼

    這篇文章主要介紹了Vue 遞歸多級菜單的實例代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 如何在vue中使用ant-design-vue組件

    如何在vue中使用ant-design-vue組件

    這篇文章主要介紹了如何在vue中使用ant-design-vue組件,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • VUE識別訪問設備是pc端還是移動端的實現(xiàn)步驟

    VUE識別訪問設備是pc端還是移動端的實現(xiàn)步驟

    經常在項目中會有支持pc與手機端需求,并且pc與手機端是兩個不一樣的頁面,這時就要求判斷設置,下面這篇文章主要給大家介紹了關于VUE識別訪問設備是pc端還是移動端的相關資料,需要的朋友可以參考下
    2023-05-05
  • Vue學習筆記進階篇之過渡狀態(tài)詳解

    Vue學習筆記進階篇之過渡狀態(tài)詳解

    本篇文章主要介紹了Vue學習筆記進階篇之過渡狀態(tài)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 淺析Vue中生命周期函數(shù)的區(qū)別

    淺析Vue中生命周期函數(shù)的區(qū)別

    生命周期分為四個對子,根據不同的情況使用不同的函數(shù),這篇文章主要為大家介紹了這些函數(shù)的使用與區(qū)別,感興趣的小伙伴可以了解一下
    2023-08-08
  • Vue中實現(xiàn)權限控制的方法示例

    Vue中實現(xiàn)權限控制的方法示例

    這篇文章主要介紹了Vue中實現(xiàn)權限控制的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • vue組件屬性(props)及私有數(shù)據data解析

    vue組件屬性(props)及私有數(shù)據data解析

    這篇文章主要介紹了vue組件屬性(props)及私有數(shù)據data解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評論

城固县| 白山市| 五大连池市| 北川| 孟连| 河北省| 景宁| 尖扎县| 司法| 姚安县| 湘乡市| 诏安县| 太康县| 秦皇岛市| 栾城县| 昌都县| 闽清县| 丰县| 苗栗县| 安乡县| 沁源县| 得荣县| 松江区| 泸州市| 土默特右旗| 固安县| 安仁县| 五峰| 景德镇市| 吉林省| 桂阳县| 长顺县| 阿巴嘎旗| 汨罗市| 长阳| 阜宁县| 株洲市| 深水埗区| 罗山县| 石渠县| 玛沁县|