Vue選項卡案例

選項卡

運行效果

圖片描述

原理分析和實現

一、動態切換class
二、v-show,根據表達式之真假值,切換元素的 display CSS 屬性。

下面直接進入正題

完整代碼

css部分

*{
    margin: 0;
    padding: 0;
}
#box{
    width: 600px;
    margin: 0 auto;
}
.tab-tit{
    font-size: 0;
    width: 600px;
}
.tab-tit a{
    display: inline-block;
    height: 50px;
    line-height: 50px;
    width: 25%;
    font-size: 18px;
    text-align: center;
    background: #ccc;
    color: #333;
    text-decoration:none;
}
.tab-tit .cur{
    background: #09f;
    color: #fff;
}
.tab-con div{
    border: 1px solid #ccc;
    height: 400px;
    width: 598px;
    margin: 0 auto;
    padding-top: 20px;
}

HTML部分(視圖)

<div id="box">
         <!--點擊設置msg的值  若是msg等於0,第一個a添加cur類名,若是msg等於1,第二個a添加cur類名,以此類推。
            添加了cur類名,a就會改變樣式 @click,:class ,v-show這三個是vue經常使用的指令或添加事件的方式-->
        <div class="tab-tit">
            <a href="javascript:;" @click="msg=0" :class="{'cur':msg===0}">html</a>
            <a href="javascript:;" @click="msg=1" :class="{'cur':msg===1}">css</a>
            <a href="javascript:;" @click="msg=2" :class="{'cur':msg===2}">javascript</a>
            <a href="javascript:;" @click="msg=3" :class="{'cur':msg===3}">vue</a>
        </div>
            <!--根據msg的值顯示div,若是msg等於0,第一個div顯示,其它三個div不顯示。
                若是msg等於1,第二個div顯示,其它三個div不顯示。以此類推-->
        <div class="tab-con">
            <div v-show="msg===0">
                html
            </div>
            <div v-show="msg===1">
                css
            </div>
            <div v-show="msg===2">
                javascript
            </div>
            <div v-show="msg===3">
                vue
            </div>
        </div>
    </div>

JavaScript部分(模型)

<script>
    new Vue({
        el: '#box',
        data: {
            msg: 0
        }
    })
</script>

喜歡的能夠點贊加收藏

相關文章
相關標籤/搜索