虚位以待(AD)
虚位以待(AD)
首页 > 网页特效 > JavaScript > vue实现选项卡及选项卡切换效果

vue实现选项卡及选项卡切换效果
类别:JavaScript   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了vue实现选项卡选项卡切换效果,这里的Vue以单文件的形式引入,另外代码在实现上会一步步的进行优化。需要的朋友可以参考下

这里不跟大家再去把Vue文档上的一些指令用法或者基础知识再复述一遍,既然是从入门到实战,我直接将平时项目中需要实现的一些效果拆分成模块。你们遇到了相关的指令或者不知道怎么用的方法自己对着文档去查,再回过头来看我的实现代码。记住,通读Vue文档真的很重要,很重要!

这里的Vue以单文件的形式引入,另外代码在实现上会一步步的进行优化,客官不要着急!

下面是一个样式稍微丑陋,但功能OK的选项卡。

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width"> <meta name="apple-mobile-web-app-title" content="Vue选项卡"> <title>Vue实现选项卡</title> <script type="text/javascript" src="../js/vue.js"></script> </head> <style> * {
    padding: 0;
    margin: 0;
    }
    .box {
    width: 800px;
    height: 200px;
    margin: 0 auto;
    border: 1px solid #000;
    }
    .tabs li {
    float: left;
    margin-right: 8px;
    list-style: none;
    }
    .tabs .tab-link {
    display: block;
    width: 250px;
    height: 49px;
    text-align: center;
    line-height: 49px;
    background-color: #5597B4;
    color: #fff;
    text-decoration: none;
    }
    .tabs .tab-link.active {
    height: 47px;
    border-bottom: 2px solid #E35885;
    transition: .3s;
    }
    .cards {
    float: left;
    }
    .cards .tab-card {
    display: none;
    }
    .clearfix:after {
    content: "";
    display: block;
    height: 0;
    clear: both;
    }
    .clearfix {
    zoom: 1;
    }
    </style> <body> <div id="app" class="box"> <ul class="tabs clearfix"> <li v-for="(tab,index) in tabsName"> <a href="#" rel="external nofollow" class="tab-link" @click="tabsSwitch(index)" v-bind:class="{
    active:tab.isActive}
    ">{
    {
    tab.name}
    }
    </a> </li> </ul> <div class="cards"> <div class="tab-card" style="display: block;
    ">这里是HTML教程</div> <div class="tab-card">欢迎来到CSS模块</div> <div class="tab-card">嗨,这里是Vue</div> </div> </div> </body> <script> var app = new Vue({
    el: "#app", data: {
    tabsName: [{
    name: "HTML", isActive: true }
    , {
    name: "CSS", isActive: false }
    , {
    name: "Vue", isActive: false }
    ], active: false }
    , methods: {
    tabsSwitch: function(tabIndex) {
    var tabCardCollection = document.querySelectorAll(".tab-card"), len = tabCardCollection.length;
    for(var i = 0;
    i < len;
    i++) {
    tabCardCollection[i].style.display = "none";
    this.tabsName[i].isActive = false;
    }
    this.tabsName[tabIndex].isActive = true;
    tabCardCollection[tabIndex].style.display = "block";
    }
    }
    }
    ) </script> </html>

第一代选项卡的实现就先这样子,后面再改进。上面是代码,下面是效果图!Vue我也只是刚刚学入门吧,做了几个项目了,有什么问题我们可以一起探讨,一起进步,欢迎私信我!

Vue实现选项卡切换,具体代码如下所示:

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>选项卡</title> <script src="../js/vue.js"></script> <style> li{
    list-style: none;
    float: left;
    margin-right: 20px;
    }
    </style></head><body> <div class="app"> <ul> <li v-for="(item,index) in list" @click="tab(index)">{
    {
    item.tab}
    }
    <div v-show="item.show"> {
    {
    item.title}
    }
    </div> </li> </ul> </div> <script> let obj=[ {
    "tab":"选项一","show":true,"title":"1111"}
    , {
    "tab":"选项二","show":false,"title":"2222"}
    , {
    "tab":"选项三","show":false,"title":"3333"}
    ];
    var vm=new Vue({
    el:".app", data:{
    list:obj }
    , methods:{
    tab:function(index){
    for(var i=0;
    i<this.list.length;
    i++){
    this.list[i].show=false;
    if(i==index){
    this.list[index].show=true;
    }
    }
    }
    }
    }
    ) </script></body></html>

总结

以上所述是小编给大家介绍的vue实现选项卡及选项卡切换效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

  • Vue.js tab实现选项卡切换
  • vue中用动态组件实现选项卡切换效果
  • vue动态组件实现选项卡切换效果
  • Vue.js组件tab实现选项卡切换
  • Vue.js组件tabs实现选项卡切换效果
相关热词搜索: vue实现选项卡效果 vue实现选项卡切换