1.在vue中实现多个按钮样式的点击切换?有多个按钮,点击其中一个出现下划线,而另一个回到原始状态。
点击其中一个两个同时出现下划线样式:
再次点击两个都还原成最初的样式,即有下划线:
如何实现只有被点击的那一个才会出现下划线样式?
这个我写的代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
<template>
<div>
<HeaderTop title="" class="headertop">
<span class="mui-icon mui-icon-arrowleft" slot="left" @click="$router.back()"></span>
</HeaderTop>
<div class="register">
<a href="#" :class="isShow" @click.prevent="comName='number'" @click="changeColor" >短信验证</a>
<a href="#" :class="isShow" @click.prevent="comName='email'" @click="changeColor" >邮箱验证</a>
</div>
<component :is="comName"></component>
</div>
</template>
<script>
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
import email from '../../pages/Login/email.vue'
import number from '../../pages/Login/number.vue'
export default {
name: "Login",
data(){
return{
comName:'number',
isShow:true,
flag:true
}
},
methods:{
changeColor:function(){
if(this.flag){
this.isShow = "massege"
this.flag = false
}
else {
this.isShow="email"
this.flag=true
}
}
},
components:{
HeaderTop,
email,
number
}
}
</script>
<style scoped lang="scss">
.headertop{background-color: white}
.register{display: flex;width: 60%;margin: 30px auto;justify-content: space-between;
.massege{
width: 40%;
position: relative;
text-align: center;
}
.massege::after{
content: '';
width: 60%;
height: 4px;
background: #0062cc;
bottom: -20px;
position: absolute;
left: 20px;
}
.email{width: 40%;text-align: center;}
}
</style>
v-if就解决了,样式:class不就好啦