css动画是队列式的,以后一个动画执行完才会执行下一个动画,也就是你删除了动画类名,认为革除了动画,其实只是将动画暂停而已,想要动画每次都是从新开始的解决办法是,在css里再写一个截然不同的动画,两个动画类名来回切换就能每次从新开始了,比方:

<template> <div>    <div v-for="(item,index) in list" :key="index" :class="[active===index?'':show?'changeColor':'changeColor2']" @click="changeColor(index)">色彩</div> </div></template><script>   export default{     name:"color",     data(){      return {        list:[         {name:"a"},         {name:"b"},         {name:"c"}        ],        show:true,        active:0      }     }    methods:{     changeColor(){       this.active=index;       this.show=!this.show     }        }   }</script><style>@keyframes colors {    0%{       color: red    }    100% {        color: yellow    }  }@keyframes colors2 {    0%{       color: red    }    100% {        color: yellow    }  }  .changeColor {    animation:colors 5s linear 0s infinite;    -webkit-animation:colors 5s linear 0s infinite;  }  .changeColor2 {    animation:colors2 5s linear 0s infinite;    -webkit-animation:colors2 5s linear 0s infinite;  }</style>