vue中实现点击按钮(多个)添加样式并展示对应内容(模块)
vue中实现点击按钮(多个)添加样式并展示对应内容(模块)
类似tab栏切换
展示对应模块这里实现两种
一种是展示不同模块
第二种是根据值展示相同模块
<template>
<div class="all">
<div class="role-content">
<div
class="role-btn "
@click="roleChecked0"
:class="role0 == true ? 'active' : ''"
>
测试1
</div>
<div
class="role-btn "
@click="roleChecked1"
:class="role1 == true ? 'active' : ''"
>
测试2
</div>
<div
class="role-btn "
@click="roleChecked2"
:class="role2 == true ? 'active' : ''"
>
测试3
</div>
<!-- 一种是展示不同模块 -->
<div v-if="status === '测试1'">测试一配套显示</div>
<div v-if="status === '测试2'">测试二配套显示</div>
<div v-if="status === '测试3'">测试三配套显示</div>
<!-- 第二种是根据值展示相同模块 -->
<div v-if="demo.includes(this.status)">
当点击测试的三个按钮,只有status是'测试2''测试3'才会展示,点击测试一按钮无效
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
role0: true,
role1: false,
role2: false,
status: '测试1',
demo: ['测试2', '测试3']
}
},
methods: {
roleChecked0() {
this.role0 = true
this.role1 = false
this.role2 = false
this.status = '测试1'
},
roleChecked1() {
this.role0 = false
this.role1 = true
this.role2 = false
this.status = '测试2'
},
roleChecked2() {
this.role0 = false
this.role1 = false
this.role2 = true
this.status = '测试3'
}
}
}
</script>
<style lang="scss" scoped>
.all {
// 点击添加类的样式
.active {
color: #000;
border: 1px solid #f00;
}
//主体部分的样式
.role-content {
.role-btn {
font-size: 14px;
width: 60px;
height: 80px;
line-height: 80px;
text-align: center;
margin-right: 15px;
display: inline-block;
background-color: #f6f6f6;
}
}
}
</style>
注:在这里初始值一定要设置正确,不然会出现刚进入页面添加类的按钮和下面展示的模块不对应
关于点击添加类的样式在style中的位置,在all外面和里面都可以实现
版权声明:本文为weixin_47686269原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。