亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用html+vue.js 實現一個兼容IE瀏覽器的分頁功能

發布時間:2020-11-09 15:15:35 來源:億速云 閱讀:211 作者:Leah 欄目:開發技術

利用html+vue.js 實現一個兼容IE瀏覽器的分頁功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

先看一下實現效果:

 利用html+vue.js 實現一個兼容IE瀏覽器的分頁功能

 上代碼:

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" >
  </form>
 &nbsp;頁&nbsp;
 button @click="handleGoToPage">確定</button>
 </div>
</div>

 3.搞事情啦 ~~~~

首先分析一下分頁功能的實現思路:

  • 首頁和尾頁始終顯示,

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

  • 監聽watch一下,每頁顯示條數pageSize,重置當前頁碼pageIndex=1

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

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

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

利用html+vue.js 實現一個兼容IE瀏覽器的分頁功能

<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 &#63; this.pageIndex = 1 : this.pageIndex > this.pageTotalNum &#63; 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 &#63; 1 : this.goToPage - 0 >= this.pageTotalNum - 0 &#63; this.pageTotalNum :
  this.goToPage
  this.goToPage = this.pageIndex
  },
 },
 computed: {
  pageTotalNum:function(){
  return this.dataListLength % this.pageSize == 0 &#63; 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) { // 總頁數<=5,顯示全部頁碼
   return p
  } else if (l > 5 && c <= 3) { // 總頁數>5 && 當前頁面<=3
   return [1, 2, 3, 4, '...', t] 
  } else if (l > 5 && c > 3 && c <= l - 2) { // 總頁數 > 5 && 當前頁面 > 3 && 當前頁 < 總頁數 - 3
   return [1, '...', c - 2, c - 1, c, '...', t] 
  } else { // 總頁數 > 5 && 當前頁面 > 3 && 當前頁 > 總頁數 - 3
   return [1, '...', t - 3, t - 2, t - 1, t] 
  }
  },
 },
 watch:{
  pageSize:function(nv,ov){
  this.pageIndex = 1
  }
 }
 });
</script>

關于利用html+vue.js 實現一個兼容IE瀏覽器的分頁功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临漳县| 怀远县| 高陵县| 江津市| 徐水县| 沾益县| 临澧县| 赤峰市| 林芝县| 隆回县| 凤城市| 同德县| 汝州市| 广河县| 舒城县| 元谋县| 吴忠市| 丹阳市| 凌云县| 麟游县| 奇台县| 故城县| 栖霞市| 内乡县| 云安县| 应城市| 新余市| 晋江市| 祁门县| 科技| 雅江县| 开阳县| 凤凰县| 永州市| 宁阳县| 西宁市| 阳山县| 司法| 乐山市| 长治县| 肇庆市|