選項卡
運行效果
原理分析和實現
一、動態切換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>
喜歡的能夠點贊加收藏