• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    Vue2.0 多 Tab切換組件的封裝實例

    來源:懂視網 責編:小采 時間:2020-11-27 22:33:57
    文檔

    Vue2.0 多 Tab切換組件的封裝實例

    Vue2.0 多 Tab切換組件的封裝實例:Vue2.0 多 Tab切換組件簡單封裝,滿足自己簡單的功能,可以直接拿去使用! 首先上效果圖: 功能簡單介紹: 1、支持tab切換 2、支持tab定位 3、支持tab自動化 仿React多Tab實現,總之可以正常使用滿足日常需求, 1、使用方法: ==index.vue文件=
    推薦度:
    導讀Vue2.0 多 Tab切換組件的封裝實例:Vue2.0 多 Tab切換組件簡單封裝,滿足自己簡單的功能,可以直接拿去使用! 首先上效果圖: 功能簡單介紹: 1、支持tab切換 2、支持tab定位 3、支持tab自動化 仿React多Tab實現,總之可以正常使用滿足日常需求, 1、使用方法: ==index.vue文件=

    Vue2.0 多 Tab切換組件簡單封裝,滿足自己簡單的功能,可以直接拿去使用!

    首先上效果圖:

    功能簡單介紹:

    1、支持tab切換

    2、支持tab定位

    3、支持tab自動化

    仿React多Tab實現,總之可以正常使用滿足日常需求,

    1、使用方法:

    ==index.vue文件==

    <TabItems>
     <div name="買入" class="first">
     <Content :isContTab = "0" />
     </div>
     <div name="自動再平衡" class="second">
     <Content :isContTab = "1" />
     </div>
     <div name="一鍵賣出" class="three">
     <Content :isContTab = "2" />
     </div>
    </TabItems>
    
    

    PS:TabItems是我的TabSwitch組件,tab頁面標題就是 div 中的name值,倆面是內容,也可以是子組件。

    接下來展示TabItems組件

    2、組件

    index.less文件

    body,html {margin: 0;}
    
    * {
     opacity: 1;
     -webkit-backface-visibility: hidden;
    }
    
    .tabItems {
     .Tab_tittle_wrap {
     position: absolute;
     width: 100%;
     top: 0;
     z-index: 2;
     background: @ffffff;
     display: -webkit-box;
     height: 80px;
     line-height: 80px;
     text-align: center;
     color: @222222;
     border-bottom: 1px solid rgba(46, 177, 255, 0.08);
     box-shadow: 0px 0px 25px 6px rgba(46, 177, 255, 0.21);
     span {
     display: block;
     text-align: center;
     width: 26%;
     margin: 0 24px;
     font-size: 26px;
     position: relative;
     i {
     display: inline-block;
     position: absolute;
     width: 1px;
     height: 50px;
     top: 15px;
     right: -24px;
     background: @dddddd;
     }
     &:last-child {
     i {
     display: none;
     }
     }
     }
     .router-link-active {
     color: #8097f9;
     border-bottom: 1px solid #8097f9;
     }
     }
     .Tab_item_wrap {
     position: absolute;
     top: 82px;
     width: 100%;
     z-index: 0;
     background: @ffffff;
     bottom: 0;
     overflow-x: hidden;
     -webkit-overflow-scrolling: touch;
     }
     .showAnminous {
     opacity: 1;
     -webkit-backface-visibility: hidden;
     -webkit-animation-name: "rightMove";
     /*動畫名稱,需要跟@keyframes定義的名稱一致*/
     -webkit-animation-duration: .3s;
     /*動畫持續的時間長*/
     -webkit-animation-iteration-count: 1;
     /*動畫循環播放的次數為1 infinite為無限次*/
     }
    }
    
    @-webkit-keyframes rightMove {
     0% {
     -webkit-transform: translate(110%, 0);
     }
     100% {
     -webkit-transform: translate(0, 0);
     }
    }
    
    @-ms-keyframes rightMove {
     0% {
     -ms-transform: translate(110%, 0);
     }
     100% {
     -ms-transform: translate(0, 0);
     }
    }
    
    @keyframes rightMove {
     0% {
     -webkit-transform: translate(110%, 0);
     -ms-transform: translate(110%, 0);
     transform: translate(110%, 0);
     }
     100% {
     -webkit-transform: translate(0, 0);
     -ms-transform: translate(0, 0);
     transform: translate(0, 0);
     }
    }
    
    

    TabItems.vue

    <template>
     <div class="tabItems">
     <div class="Tab_tittle_wrap" @click="tabswitch">
     <span v-for="(v,i) in tabTitle" :style="{width:(100/tabTitle.length-7.5)+'%'}" :class="isShowTab==i?'router-link-active':''">{{v}}<i></i></span>
     </div>
     <div class="Tab_item_wrap">
     <slot></slot>
     </div>
     </div>
    </template>
    
    <style lang="less">
     @import "./less/index";
    </style>
    <script>
     export default {
     data() {
     return {
     tabTitle: [],
     isShowTab: 0,
     }
     },
     created: function() {
     let is = sessionStorage.getItem("isTabShow");
     if(is) {
     this.isShowTab = is;
     } else {
     let URL = libUtils.GetURLParamObj();
     this.isShowTab = URL.isShowTab ? URL.isShowTab : "0";
     }
    
     setTimeout(function() {
     this.tabswitch(document.querySelector(".Tab_tittle_wrap").children[this.isShowTab].click());
     }.bind(this), 0);
     },
     mounted() {
     let slot = this.$slots.default;
     for(let i = 0; i < slot.length; i++) {
     if(slot[i].tag == "div") {
     this.tabTitle.push(slot[i].data.attrs.name);
     if(slot[i].elm) {
     slot[i].elm.className = "hide";
     if(this.isShowTab == i) {
     slot[i].elm.className = "";
     }
     };
     }
     }
     },
     methods: {
     tabswitch() {
     if(!event) return;
     let target = event.target;
    
     if(target.nodeName.toLowerCase() !== 'span') {
     return;
     }
    
     let len = target.parentNode.children;
     for(let i = 0; i < len.length; i++) {
     len[i].index = i;
     len[i].removeAttribute('class');
     }
     target.setAttribute('class', 'router-link-active');
     this.isShowTab = target.index;
    
     //tabItems
     let child = this.$el.children[1].children;
     for(let k = 0; k < child.length; k++) {
     child[k].className = "hide";
     if(k == target.index) {
     child[k].className = "showAnminous";
     }
     }
     try {
     sessionStorage.setItem("isTabShow", target.index);
     } catch(err) {
     console.log(err);
     }
     }
     }
     }
    </script>
    
    

    PS:

    created、mounted這兩個方法不需要過多介紹,Vue生命周期

    1、created方法介紹。

    獲取瀏覽器鏈接地址:libUtils.GetURLParamObj();獲取瀏覽器鏈接地址的

    created這個方法主要是用來定位tab具體顯示哪個頁面的

    2、mounted方法介紹

    主要是用于隱藏內容容器的

    3、tabswitch方法

    用來切換組件容器的顯示的頁面!

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Vue2.0 多 Tab切換組件的封裝實例

    Vue2.0 多 Tab切換組件的封裝實例:Vue2.0 多 Tab切換組件簡單封裝,滿足自己簡單的功能,可以直接拿去使用! 首先上效果圖: 功能簡單介紹: 1、支持tab切換 2、支持tab定位 3、支持tab自動化 仿React多Tab實現,總之可以正常使用滿足日常需求, 1、使用方法: ==index.vue文件=
    推薦度:
    標簽: 封裝 tab vue2.0
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久国产乱子伦精品免费强| 精品久久久久久久| 国产精品女同一区二区| 久久久久人妻精品一区三寸蜜桃| 精品国产午夜理论片不卡| 久久国产成人精品国产成人亚洲| 精品视频在线免费观看| 国产亚洲欧美精品久久久| 亚洲精品无码高潮喷水在线| 精品国产呦系列在线观看免费| 免费精品99久久国产综合精品| 精品午夜福利在线观看| 宅男在线国产精品无码| 九九热这里只有国产精品| 97精品国产97久久久久久免费| 九九精品99久久久香蕉| 亚洲AⅤ永久无码精品AA| 亚洲国产美女精品久久久久∴| 国产精品免费αv视频| 九九在线精品视频专区| 国产中老年妇女精品| 亚洲高清国产AV拍精品青青草原| 欧美日韩精品在线观看| 国产精品午夜国产小视频| 欧美极品欧美精品欧美视频| 18国产精品白浆在线观看免费| 久久久国产精品亚洲一区| 亚洲精品无码你懂的网站| 日本Aⅴ大伊香蕉精品视频| 精品久久综合1区2区3区激情| 99久久99久久精品国产片果冻| 久久精品无码一区二区三区| 国产精品天天影视久久综合网| 99久久人妻无码精品系列| 国产精品免费AV片在线观看| 九九精品在线观看| 国产精品白丝AV网站| 午夜亚洲av永久无码精品| 精品一久久香蕉国产线看播放 | 国产午夜精品无码| 蜜芽亚洲av无码精品色午夜|