Vue2.0 多 Tab切换组件的封装介绍

本篇文章主要介绍了vue2.0 多 tab切换组件的封装实例,内容挺不错的,现在分享给大家,也给大家做个参考。

Vue2.0 多 Tab切换组件简单封装,满足自己简单的功能,可以直接拿去使用!

首先上效果图:

Vue2.0 多 Tab切换组件的封装介绍

功能简单介绍:

1、支持tab切换

立即学习“前端免费学习笔记(深入)”;

2、支持tab定位

3、支持tab自动化

仿React多Tab实现,总之可以正常使用满足日常需求,

1、使用方法:

==index.vue文件==

  

      

  

      

  

      

登录后复制

PS:TabItems是我的TabSwitch组件,tab页面标题就是 p 中的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

  

    

      {{v}}    

    

          

   @import "./less/index"; 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 == "p") { 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); } } } }

登录后复制

PS:

created、mounted这两个方法不需要过多介绍,Vue生命周期

1、created方法介绍。

获取浏览器链接地址:libUtils.GetURLParamObj();获取浏览器链接地址的

created这个方法主要是用来定位tab具体显示哪个页面的

2、mounted方法介绍

主要是用于隐藏内容容器的

3、tabswitch方法

用来切换组件容器的显示的页面!

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

关于Vue拖拽组件的开发介绍

关于Vue拖拽组件的开发介绍

以上就是Vue2.0 多 Tab切换组件的封装介绍的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2747715.html

(0)
上一篇 2025年3月8日 04:26:43
下一篇 2025年2月24日 20:42:20

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论