vue同时使用两个class 一个默认,一个触发事件后添加

本文介绍了一个Vue.js项目中实现菜单项点击时样式切换的功能。通过使用`:class`绑定来动态设置元素的样式类,实现了点击后激活状态的视觉效果。详细解析了如何在点击事件中改变数据绑定值来更新元素的样式,并解决了当多个样式存在冲突时的优先级问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<ul class="typeList"    >
<li @click="deptClick('all')" class="typeItem">
<span class="active" title="全部">全部</span></li>
<li @click="deptClick(dept.value)" class="typeItem" v-for="(dept,index) in depts">
<span :class="{selected: selectFlg === dept.value,active:activeFlg ===1}" title="$t(dept.alias)">{{dept.alias | ellipsis }}</span></li>
</ul>

主要在于

:class="{selected: selectFlg === dept.value,active:activeFlg ===1}"

当前需要,点击时触发selected样式

data() {
			return {
				activeFlg:1,
				selectFlg:null,
				}

deptClick(value) {
		  this.selectFlg =value
			},

两个样式中有冲突的属性,两个样式的触发顺序如下

   .active {
      display: block;
      height: 40px;
      line-height: 40px;
      text-align: center;
      font-size: 14px;
      font-weight: 400;
      color: #353b47;
      background-color: #f1f4f7;
      overflow: hidden;
      word-wrap: normal;
      white-space: nowrap;
      text-overflow: ellipsis;
      border-radius: 4px;
      cursor: pointer;
      transition: all .2s linear;
  }
  .selected{
  	background:#1890ff;
  	color: #fff;
  }

如果selected在后则先执行selected,反之则执行active的冲突属性
效果:
选中前:在这里插入图片描述
选中后:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值