美文网首页
vue实现选项卡效果

vue实现选项卡效果

作者: 一名有马甲线的程序媛 | 来源:发表于2018-04-24 10:47 被阅读644次

    html:

        <body>  
            <div id="app" class="box">  
                <ul class="tabs clearfix">  
                    <li v-for="(tab,index) in tabsName">  
                        <a href="#" 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> 
    

    js:

    export default {
        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";  
                    }  
                } 
    }
    

    css:

        <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>  
    

    查看原文请点击

    相关文章

      网友评论

          本文标题:vue实现选项卡效果

          本文链接:https://www.haomeiwen.com/subject/bbbdlftx.html