欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

 

 上代碼:

1.簡(jiǎn)單搞一搞 CSS,此處代碼有折疊
2.簡(jiǎn)單搞一搞 HTML 

<div id="app" v-cloak @click="showOption=false">
 第{{pageIndex}}頁(yè), 每頁(yè)顯示{{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}}條/頁(yè)</span>
  <ul class="size-option" v-show="showOption">
  <li v-for="(item, index) in pageSizeList" :key="index" @click="pageSize=item;showOption=false">{{item}}條/頁(yè)</li>
  </ul>
 </div>
 跳至&nbsp;
  <form id="frm1">
   <input type="text" v-model="goToPage" style="text-align: center;">
  </form>
 &nbsp;頁(yè)&nbsp;
 button @click="handleGoToPage">確定</button>
 </div>
</div>

 3.搞事情啦 ~~~~

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

  • 首頁(yè)和尾頁(yè)始終顯示,

  • 通過(guò)數(shù)據(jù)總條數(shù)dataListLength及每頁(yè)顯示條數(shù)pageSize,計(jì)算出總頁(yè)數(shù)pageTotalNum

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

  • 我設(shè)計(jì)的分頁(yè)每次最多顯示5個(gè)頁(yè)碼(大家可根據(jù)需求自行調(diào)整),剩余部分 ... 代替,并設(shè)置不可點(diǎn)擊,

  • 根據(jù)不同的總頁(yè)數(shù)和當(dāng)前頁(yè)碼的切換,頁(yè)簽展示形態(tài)有所不同,展示形態(tài)如下圖對(duì)應(yīng)序號(hào)展示

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

<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個(gè)頁(yè)碼
  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) { // 總頁(yè)數(shù)<=5,顯示全部頁(yè)碼
   return p
  } else if (l > 5 && c <= 3) { // 總頁(yè)數(shù)>5 && 當(dāng)前頁(yè)面<=3
   return [1, 2, 3, 4, '...', t] 
  } else if (l > 5 && c > 3 && c <= l - 2) { // 總頁(yè)數(shù) > 5 && 當(dāng)前頁(yè)面 > 3 && 當(dāng)前頁(yè) < 總頁(yè)數(shù) - 3
   return [1, '...', c - 2, c - 1, c, '...', t] 
  } else { // 總頁(yè)數(shù) > 5 && 當(dāng)前頁(yè)面 > 3 && 當(dāng)前頁(yè) > 總頁(yè)數(shù) - 3
   return [1, '...', t - 3, t - 2, t - 1, t] 
  }
  },
 },
 watch:{
  pageSize:function(nv,ov){
  this.pageIndex = 1
  }
 }
 });
</script>

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

相關(guān)文章

  • vue使用monaco?editor漢化右鍵菜單示例

    vue使用monaco?editor漢化右鍵菜單示例

    這篇文章主要為大家介紹了vue使用?monaco?editor?漢化右鍵菜單實(shí)現(xiàn)漢化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 詳解vue開(kāi)發(fā)中調(diào)用微信jssdk的問(wèn)題

    詳解vue開(kāi)發(fā)中調(diào)用微信jssdk的問(wèn)題

    這篇文章主要介紹了vue開(kāi)發(fā)中調(diào)用微信jssdk的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue+echarts實(shí)帶漸變效果的折線圖

    vue+echarts實(shí)帶漸變效果的折線圖

    這篇文章主要為大家詳細(xì)介紹了vue+echarts實(shí)帶漸變效果的折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue3.0監(jiān)聽(tīng)器watch與watchEffect詳解

    Vue3.0監(jiān)聽(tīng)器watch與watchEffect詳解

    在 Vue 3 中,watch 仍然是一種用于監(jiān)聽(tīng)數(shù)據(jù)變化并執(zhí)行相應(yīng)操作的方式,不過(guò)在組合式 API 中,watch 的使用方式與選項(xiàng)式 API 略有不同,這篇文章主要介紹了Vue3.0監(jiān)聽(tīng)器watch與watchEffect,需要的朋友可以參考下
    2023-12-12
  • vue-quill-editor的使用及個(gè)性化定制操作

    vue-quill-editor的使用及個(gè)性化定制操作

    這篇文章主要介紹了vue-quill-editor的使用及個(gè)性化定制操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 一文帶你搞懂Vue中Vuex的使用

    一文帶你搞懂Vue中Vuex的使用

    ??Vuex?是一個(gè)專(zhuān)為?Vue.js?應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài)。本文會(huì)通過(guò)一些簡(jiǎn)單的示例,為大家詳細(xì)講解Vuex的使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • vue-cli開(kāi)發(fā)環(huán)境實(shí)現(xiàn)跨域請(qǐng)求的方法

    vue-cli開(kāi)發(fā)環(huán)境實(shí)現(xiàn)跨域請(qǐng)求的方法

    本篇文章主要介紹了vue-cli開(kāi)發(fā)環(huán)境實(shí)現(xiàn)跨域請(qǐng)求的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • vue全局注冊(cè)自定義指令防抖解析

    vue全局注冊(cè)自定義指令防抖解析

    這篇文章主要介紹了vue全局注冊(cè)自定義指令防抖解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue+element 解決瀏覽器自動(dòng)填充記住的賬號(hào)密碼問(wèn)題

    Vue+element 解決瀏覽器自動(dòng)填充記住的賬號(hào)密碼問(wèn)題

    我們?cè)谧鰂orm表單的時(shí)候,會(huì)發(fā)現(xiàn),瀏覽器會(huì)自動(dòng)的將我們之前保存的密碼,自動(dòng)的填充到表單中input 為 type="password" 的框中,如何實(shí)現(xiàn)此功能呢,下面小編給大家介紹下,感興趣的朋友一起看看吧
    2019-06-06
  • VUE+Element-ui實(shí)戰(zhàn)之使用el-calendar日歷自定義顯示內(nèi)容

    VUE+Element-ui實(shí)戰(zhàn)之使用el-calendar日歷自定義顯示內(nèi)容

    這篇文章主要介紹了VUE+Element-ui實(shí)戰(zhàn)之使用el-calendar日歷自定義顯示內(nèi)容方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評(píng)論