国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 国产欧美日本在线 | 免费国产高清视频 | 国产精品久久久久影院色 | 特黄日韩免费一区二区三区 | 小草视频网站 | 欧美精品久久久久久久久大尺度 | 欧美激情一区二区三区 | 久久精品国产免费一区 | 久久精品成人国产午夜 | 亚洲a∨精品一区二区三区下载 | 国产亚洲欧美精品久久久 | 日韩国产欧美视频 | 精品日韩在线观看 | 国产亚洲一区二区三区在线观看 | 国产免费高清视频在线观看不卡 | 国产伦精品一区二区三区在线观看 | 亚洲视频免费观看 | 亚洲综合欧美综合 | 久久久久久久久国产 | 在线视频 日韩 | 日韩精品一区二区三区毛片 | 九草伊人 | 国产又黄又a又潮娇喘视频 国产淫视频 | 欧美精品第一页 | 香蕉久久一区二区三区 | 亚洲一区中文字幕在线观看 | 国产欧美综合精品一区二区 | 日韩专区在线播放 | 国产在线观看免费 | 免费观看欧美一区二区三区 | 亚洲欧美综合 | 国产不卡在线看 | 国产九九精品 | 免费一区视频 | 日韩欧美一区二区三区不卡在线 | 在线免费国产 | 欧美成人性色生活18黑人 | 国产精品综合色区在线观看 | 亚欧激情 | 在线视频日韩 | 国产精品26p |