vue动态class循环列表点击变色
时间: 2024-12-03 11:13:30 浏览: 13
在Vue.js中,如果你想要创建一个动态的列表并且通过点击改变元素的样式(如颜色),你可以使用v-for指令来遍历数据,并结合`:class`属性和JavaScript条件表达式来控制CSS类的添加或移除。这里是一个基本示例:
```html
<template>
<ul>
<li v-for="(item, index) in items" :key="index" @click="changeColor(index)">
{{ item }}
<span :class="{ active: isSelected(index) }"></span>
</li>
</ul>
</template>
<script>
export default {
data() {
return {
items: ['Item 1', 'Item 2', 'Item 3'],
selectedIndex: null,
};
},
methods: {
changeColor(index) {
this.selectedIndex = index;
// 当点击时可以改变当前选中项的颜色或者其他样式
this.$set(this.items[index], 'color', 'your-color-class');
},
isSelected(index) {
return index === this.selectedIndex;
},
},
};
</script>
<style scoped>
.active {
color: red; /* 这里设置你希望激活时显示的颜色 */
}
</style>
```
在这个例子中,当用户点击列表中的某一项时,`changeColor`方法会被调用,更新`selectedIndex`并可能改变对应项的`color` CSS类。`isSelected`方法用于判断当前点击的项是否应该拥有`active`这个CSS类,从而改变其颜色。
阅读全文