VUE实现点击文字添加颜色(动态修改class)

本文介绍了使用Vue的动态绑定:class指令实现文字点击改变颜色的效果。通过三种不同场景的代码示例,详细说明如何实现单个文字、多个文字以及总开关式的颜色切换功能。点击文字时,其颜色会改变,再次点击则恢复原状,同时提供了解决多个文字选择和互斥选择的解决方案。
摘要由CSDN通过智能技术生成

实现的原理很简单,只需要动态绑定一个class就可以了,现在分别列出三种情况

1.点击文字颜色改变,再次点击,点击的颜色改变,之前的颜色变回原来的颜色

代码如下:

<template>
  <div class="list2">
    <ul>
      <li
        v-for="(item,index) in List"
        :key="index"
        :class="{activeColor:colorIndex===index}"
        @click="changeColor(item,index)"
      >
        <span>{
   {
   item.name}}</span>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
   
  name: "list",
  components: {
   },
  data() {
   
    return {
   
      List: [
        {
    name: "总的" },
        {
    name: "部分1" },
        {
    name: "部分2" },
        {
    name: "部分3" }
      ],
      colorIndex: -1
    };
  },
  mounted() {
   },
  methods: {
   
    changeColor(item, index) {
   
      this.colorIndex = index;
    }
  }
};
  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,针对您的问题,可以参考如下思路: 1. 在 Vue 中,我们可以使用 `v-if` 或 `v-show` 指令来实现点击切换两段文字的功能。这两个指令的区别在于,`v-if` 会直接将元素从 DOM 中移除,而 `v-show` 则是通过设置 CSS 的 `display` 属性来控制元素的显示/隐藏。 2. 对于字体颜色和字体大小的修改,我们可以通过绑定样式的方式来实现。在 Vue 中,可以使用 `v-bind` 或简写的 `:` 来进行样式绑定。同时,我们可以通过绑定不同的类名来实现不同的样式效果。 综上,我们可以编写如下代码来实现点击切换两段文字,并且可以动态修改文字颜色和大小: ```html <template> <div> <p v-show="showText1" @click="toggleText" :class="{ 'text1': true, 'active': text1Active }">{{ text1 }}</p> <p v-show="!showText1" @click="toggleText" :class="{ 'text2': true, 'active': text2Active }">{{ text2 }}</p> </div> </template> <script> export default { data() { return { showText1: true, text1: 'Hello, World!', text2: 'Bonjour le monde!', text1Active: false, text2Active: false, }; }, methods: { toggleText() { this.showText1 = !this.showText1; this.text1Active = this.showText1; this.text2Active = !this.showText1; }, }, }; </script> <style> p { cursor: pointer; font-size: 16px; } .text1 { color: black; } .text1.active { color: red; font-size: 20px; } .text2 { color: blue; } .text2.active { color: green; font-size: 24px; } </style> ``` 在上述代码中,我们使用了 `v-show` 指令来控制两段文字的显示/隐藏,使用 `@click` 来监听点击事件,并在 `toggleText` 方法中修改 `showText1` 的值以实现切换。同时,我们使用了 `:class` 来绑定类名,并将不同的类名分别绑定到不同的 `<p>` 元素上。我们为这些类名分别定义了不同的样式,例如 `text1` 对应黑色字体,`text1.active` 对应红色字体和更大的字号,`text2` 对应蓝色字体,`text2.active` 对应绿色字体和更大的字号。在需要时,我们通过修改 `text1Active` 和 `text2Active` 的值来切换不同的类名,从而实现不同的样式效果。最后,我们为 `<p>` 元素添加了 `cursor: pointer` 样式,使其在鼠标悬停时显示为手型,以提示用户可以点击该元素。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值