选项卡
运行效果
原理分析和实现
1、动态切换class
2、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>
喜欢的可以点赞加收藏
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。