html+vue.js 實現分頁可相容IE
阿新 • • 發佈:2020-11-06
#### 當功能比較簡單,在單一html中使用vue.js分頁展示資料,並未安裝腳手架,或使用相關UI框架,此時需要手寫一個分頁器,不失為最合理最便捷的解決方案,
先看一下實現效果:
![](https://img2020.cnblogs.com/blog/1238759/202011/1238759-20201106185640639-1263371983.gif)
#### 上程式碼:
2.簡單搞一搞 HTML
```
第{{pageIndex}}頁, 每頁顯示{{pageSize}}條
1" class="pageContainer">
共{{dataListLength}}條
確定
```
## 3.搞事情啦 ~~~~
#### 首先分析一下分頁功能的實現思路:
- 首頁和尾頁始終顯示,
- 通過資料總條數dataListLength及每頁顯示條數pageSize,計算出總頁數pageTotalNum
- 監聽watch一下,每頁顯示條數pageSize,重置當前頁碼pageIndex=1
- 我設計的分頁每次最多顯示5個頁碼(大家可根據需求自行調整),剩餘部分 ... 代替,並設定不可點選,
- 根據不同的總頁數和當前頁碼的切換,頁籤展示形態有所不同,展示形態如下圖對應序號展示
> 1. 總頁數 <= 1,不顯示分頁器
> 2. 總頁數 <= 5 && 總頁數 > 1,顯示全部頁碼
> 3. 總頁數 > 5 && 當前頁面 <= 3 , 倒數第二個頁碼為...,頁碼從**左**往**右**計算
> 4. 總頁數 > 5 && 當前頁面 > 3 && 當前頁 < 總頁數 - 3 , 正倒數第二個頁碼都為..., 頁碼以當前頁碼計算,**±1**
> 5. 總頁數 > 5 && 當前頁面 > 3 && 當前頁 > 總頁數 - 3 , 正數第二個頁碼為..., 頁碼從**右**往**左**計算
![](https://img2020.cnblogs.com/blog/1238759/202011/1238759-20201106164311694-1811938151.jpg)
```
```
1.簡單搞一搞 CSS,此處程式碼有摺疊
[v-cloak] { display: none; } #app { text-align: center; padding-top: 300px; height:500px; } .pageContainer { width: 800px; margin: 100px auto; text-align: center; font-size: 14px; color: #A3A3A3; } .pageContainer ul.pagesInner { height: 30px; line-height: 30px; display: inline-block; padding: 0; } .pageContainer ul.pagesInner li { width: 30px; height: 30px; display: inline-block; border: 1px solid #E5E5E5; margin: 0 5px; list-style: none; } .pageContainer ul.pagesInner li.actived { background: #FF6200; color: #ffffff; } .pageContainer .page-size-box { position: relative; display: inline-block; width: 70px; border: 1px solid #E5E5E5; height: 30px; line-height: 30px; } .pageContainer ul.size-option { display: inline-block; border: 1px solid #E5E5E5; position: absolute; margin: 0; padding: 0; left: 0; top: -120px; background: #ffffff; } .pageContainer ul.size-option li{ list-style: none; width: 70px; } .pageContainer ul.size-option li:hover{ color: #FF6200; } .pageContainer form { display: inline-block; } .pageContainer form input, .pageContainer button { outline: none; padding: 0; width: 46px; height: 30px; background: #ffffff; border: 1px solid #E5E5E5; color: #A3A3A3; }
- <
- {{item}}
- >
- {{item}}條/頁