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

vue實(shí)現(xiàn)前端分頁(yè)完整代碼

 更新時(shí)間:2020年06月17日 08:44:51   作者:最愛松露巧克力  
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)前端分頁(yè)完整代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了vue實(shí)現(xiàn)前端分頁(yè)的具體代碼,供大家參考,具體內(nèi)容如下

首先,做出來的效果如圖所示,具體的Ajax請(qǐng)求數(shù)據(jù)可以寫在點(diǎn)擊函數(shù)中
分頁(yè)效果算是比較費(fèi)腦子的,里面計(jì)算有些麻煩,本文上完整代碼,一起學(xué)習(xí)進(jìn)步

  • “上一頁(yè)”寫兩個(gè)li元素,如果已經(jīng)是第一頁(yè),那么就禁止鼠標(biāo)點(diǎn)擊,如果不是就curr減減,并且可以點(diǎn)擊
  • 同理“下一頁(yè)”也一樣
  • 中間部分是通過indexs循環(huán),indexs通過computed計(jì)算得出
<div class="page-bar">
  <ul>
    <li v-if="cur>1"><a v-on:click="cur--,pageClick()">上一頁(yè)</a></li>
    <li v-if="cur==1"><a class="banclick">上一頁(yè)</a></li>
    <!--當(dāng)前頁(yè)背景色為藍(lán)色-->
    <li v-for="index in indexs" v-bind:class="{ 'active': cur == index}">
      <a v-on:click="btnClick(index)">{{ index }}</a>
    </li>
    <li v-if="cur<all"><a v-on:click="cur++,pageClick()">下一頁(yè)</a></li>
    <li v-if="cur == all"><a class="banclick">下一頁(yè)</a></li>
    <li><a>共<i>{{all}}</i>頁(yè)</a></li>
  </ul>
</div>

難點(diǎn)就是IF嵌套語(yǔ)句

1、每次顯示5個(gè)數(shù)據(jù),如果大于3,范圍從3到6,如果到達(dá)7,那么下邊加2變成9,已經(jīng)超過最大的范圍值,所以最大范圍到6
2、如果是大于6,那么最大值就是最大值,最小變成all-4
3、如果3以內(nèi),默認(rèn)不跳動(dòng)

var pageBar = new Vue({
  el: '.page-bar',
  data: {
    all: 8, //總頁(yè)數(shù)
    cur: 1//當(dāng)前頁(yè)碼
  },
  watch: {
    cur: function(oldValue , newValue){
      console.log(arguments);
    }
  },  
   methods: {
    btnClick: function(data){
      if(data != this.cur){
        this.cur = data;
      }
    },
    pageClick: function(){
      console.log('現(xiàn)在在'+this.cur+'頁(yè)');
    }
  },
  computed: {
    indexs: function(){
     var left = 1;
     var right = this.all;
     var ar = [];
     if(this.all>= 5){
      //這里最大范圍從3到6,如果到達(dá)7,那么下邊加2變成9,已經(jīng)超過最大的范圍值
      if(this.cur > 3 && this.cur < this.all-1){
       //以4為參考基準(zhǔn),左面加2右邊加2
          left = this.cur - 2
          right = this.cur + 2
      }else{
        if(this.cur<=3){
          left = 1
          right = 5
        }else{
          right = this.all
          left = this.all -4
        }
      }
     }
    while (left <= right){
      ar.push(left)
      left ++
    }
    console.log(ar);
    return ar
    }
  }
})

全部代碼:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta charset="utf-8">
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<script type="text/javascript" src="js/vue.min.js"></script>
<style>
.page-bar{
  margin:40px;
}
ul,li{
  margin: 0px;
  padding: 0px;
}
li{
  list-style: none
}
.page-bar li:first-child>a {
  margin-left: 0px
}
.page-bar a{
  border: 1px solid #ddd;
  text-decoration: none;
  position: relative;
  float: left;
  padding: 6px 12px;
  margin-left: -1px;
  line-height: 1.42857143;
  color: #337ab7;
  cursor: pointer
}
.page-bar a:hover{
  background-color: #eee;
}
.page-bar a.banclick{
  cursor:not-allowed;
}
.page-bar .active a{
  color: #fff;
  cursor: default;
  background-color: #337ab7;
  border-color: #337ab7;
}
.page-bar i{
  font-style:normal;
  color: #d44950;
  margin: 0px 4px;
  font-size: 12px;
}
</style>
</head>
<body>
 <div class="page-bar">
  <ul>
    <li v-if="cur>1"><a v-on:click="cur--,pageClick()">上一頁(yè)</a></li>
    <li v-if="cur==1"><a class="banclick">上一頁(yè)</a></li>
    <!--當(dāng)前頁(yè)背景色為藍(lán)色-->
    <li v-for="index in indexs" v-bind:class="{ 'active': cur == index}">
      <a v-on:click="btnClick(index)">{{ index }}</a>
    </li>
    <li v-if="cur<all"><a v-on:click="cur++,pageClick()">下一頁(yè)</a></li>
    <li v-if="cur == all"><a class="banclick">下一頁(yè)</a></li>
    <li><a>共<i>{{all}}</i>頁(yè)</a></li>
  </ul>
</div>
<script type="text/javascript">
var pageBar = new Vue({
  el: '.page-bar',
  data: {
    all: 8, //總頁(yè)數(shù)
    cur: 1//當(dāng)前頁(yè)碼
  },
  watch: {
    cur: function(oldValue , newValue){
      console.log(arguments);
    }
  },  
   methods: {
    btnClick: function(data){
      if(data != this.cur){
        this.cur = data;
      }
    },
    pageClick: function(){
      console.log('現(xiàn)在在'+this.cur+'頁(yè)');
    }
  },
  computed: {
    indexs: function(){
     var left = 1;
     var right = this.all;
     var ar = [];
     if(this.all>= 5){
      //這里最大范圍從3到6,如果到達(dá)7,那么下邊加2變成9,已經(jīng)超過最大的范圍值
      if(this.cur > 3 && this.cur < this.all-1){
       //以4為參考基準(zhǔn),左面加2右邊加2
          left = this.cur - 2
          right = this.cur + 2
      }else{
        if(this.cur<=3){
          left = 1
          right = 5
        }else{
          right = this.all
          left = this.all -4
        }
      }
     }
    while (left <= right){
      ar.push(left)
      left ++
    }
    console.log(ar);
    return ar
    }
  }
})
</script>
</body>
</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中實(shí)現(xiàn)上傳文件給后臺(tái)實(shí)例詳解

    vue中實(shí)現(xiàn)上傳文件給后臺(tái)實(shí)例詳解

    在本文里小編給大家分享了一篇關(guān)于vue中實(shí)現(xiàn)上傳文件給后臺(tái)的實(shí)例內(nèi)容,有需要此功能的可以學(xué)習(xí)參考下。
    2019-08-08
  • vue實(shí)現(xiàn)選項(xiàng)卡功能

    vue實(shí)現(xiàn)選項(xiàng)卡功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 如何把vuejs打包出來的文件整合到springboot里

    如何把vuejs打包出來的文件整合到springboot里

    這篇文章主要介紹了如何把vuejs打包出來的文件整合到springboot里,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • el-tree?loadNode懶加載的實(shí)現(xiàn)

    el-tree?loadNode懶加載的實(shí)現(xiàn)

    本文主要介紹了el-tree?loadNode懶加載的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • vue項(xiàng)目添加多頁(yè)面配置的步驟詳解

    vue項(xiàng)目添加多頁(yè)面配置的步驟詳解

    公司使用 vue-cli 創(chuàng)建的 vue項(xiàng)目 在初始化時(shí)并沒有做多頁(yè)面配置,隨著需求的不斷增加,發(fā)現(xiàn)有必要使用多頁(yè)面配置。這篇文章主要介紹了vue項(xiàng)目添加多頁(yè)面配置,需要的朋友可以參考下
    2019-05-05
  • Vue 如何追蹤數(shù)據(jù)變化

    Vue 如何追蹤數(shù)據(jù)變化

    這篇文章主要介紹了Vue 如何追蹤數(shù)據(jù)變化,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-04-04
  • 淺析Visual Studio Code斷點(diǎn)調(diào)試Vue

    淺析Visual Studio Code斷點(diǎn)調(diào)試Vue

    本篇文章給大家總結(jié)了Visual Studio Code斷點(diǎn)調(diào)試Vue的方法以及心得分享,需要的朋友參考學(xué)習(xí)下。
    2018-02-02
  • vue.config.js文件devServer字段的常用選項(xiàng)詳解

    vue.config.js文件devServer字段的常用選項(xiàng)詳解

    在?Vue?CLI?生成的?vue.config.js?文件中,devServer?字段用于配置開發(fā)服務(wù)器的選項(xiàng),本文給大家介紹vue.config.js文件devServer字段的常用選項(xiàng),感興趣的朋友一起看看吧
    2023-11-11
  • 使用sessionStorage解決vuex在頁(yè)面刷新后數(shù)據(jù)被清除的問題

    使用sessionStorage解決vuex在頁(yè)面刷新后數(shù)據(jù)被清除的問題

    localStorage沒有時(shí)間期限,除非將它移除,sessionStorage即會(huì)話,當(dāng)瀏覽器關(guān)閉時(shí)會(huì)話結(jié)束,有時(shí)間期限,具有自行百度。本文使用的是sessionStorage解決vuex在頁(yè)面刷新后數(shù)據(jù)被清除的問題,需要的朋友可以參考下
    2018-04-04
  • vue.js實(shí)現(xiàn)回到頂部動(dòng)畫效果

    vue.js實(shí)現(xiàn)回到頂部動(dòng)畫效果

    這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)回到頂部動(dòng)畫效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評(píng)論