微语 微语:代码适合中午敲,早晚出BUG

vue3如何使用动态class切换 Vue

这里写的是一个旋转按钮使用的是elementPlus


vue3动态class三目预算:class="isRotated ? 'rotate' : 'reverseRotate'"通过点击事件给变量取反来实现class样切换


HTML

 <div class="numE" @click="numE">
    <el-icon ref="numElement" color="#fff" size="30px" :class="isRotated ? 'rotate' : 'reverseRotate'">
     <Expand />
    </el-icon>
 </div>

CSS

.rotate,
.reverseRotate {
    transition: transform 0.5s ease;
}
.rotate {
    transform: rotate(180deg);
}
.reverseRotate {
    transform: rotate(0deg);
}

JS

import { ref } from 'vue'
let isRotated = ref(false)
let numE = () => {
    isRotated.value = !isRotated.value;
}

vue中style行内样式和claass动态样式 Vue

1.在vue中style行内动态样式通过 :style来开启动态属性,style={样式名:值}控制如下:

<p :style="{ backgroundColor: cor, fontSize: size }">这是一段文本</p>
export default {
  data() {
    return {
      cor: 'yellow',
      size: '30px'
    }
  }
}

2.动态Class样式通过:class="{样式名:true|false}"来开启,通过真假控制是否启用样式,如下

<p :class="{ cors: bol, font: sz }">Class动态样式</p>
export default {
  data() {
    return {,
      bol: true,
      sz: true,
    }
  }
}
.cors {
  background-color: #4ce48e;
  line-height: 2;
}

.font {
  font-size: 2em;
}

进阶用法:例如:通过点击按钮控制样式是否显示,给元素绑定点击事件,点击之前给控制样式的值,取反可控制是否开启和显示,如下

<p @click="as" :class="{ cors: bol, font: sz }">Class动态样式</p>
  methods: {
    as() {
      this.sz = !this.sz
    }
  }

或者

<p @click="sz = !sz" :class="{ cors: bol, font: sz }">Class动态样式</p>