<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的冲突属性
效果:
选中前:
选中后: