vue中v-for通过动态绑定class实现触发效果
程序员文章站
2022-06-16 20:53:24
vue动态绑定class练习。
:class=“{ ‘类名1':条件表达式,‘类名2':条件表达式… }”
vue动态绑定class练习。
:class=“{ ‘类名1':条件表达式,‘类名2':条件表达式… }”
<template> <div class="app-*"> <ul> <li v-for="(item,i) of list" :key="i" class="item" @click="clickindex=i" :class="{'click':i==clickindex}" ></li> </ul> </div> </template> <script> export default { data() { return { list: [1, 2, 3, 4], clickindex: -1 }; }, methods: {} }; </script> <style scoped> .item { display: inline-block; width: 100px; height: 100px; cursor: pointer; border: 1px solid black; } .item:hover { background: gray; } .item.click { background: red; } </style>
补充:vue之v-for中给每个item动态绑定class,动态添加元素,动态删除某个元素的实现
主要解决了在v-for时,如何给每个item添加动态的样式,即是说,鼠标滑动到某一项时,可以单独改变某一项的样式,同时添加按钮等操作。以及删除某一项的操作。
<template> <div class="hello"> <ul> <li v-for="(item, itemindex) in test" :key="item.id" :class="{defaultclass: itemindex === isactive}" @mouseenter="onmouseenter(itemindex)" @mouseleave="onmouseleave"> {{ itemindex+1 }} :{{ item.title }} <button v-if="isactive === itemindex" @click="deleteitem(itemindex)">删除({{itemindex+1}})</button> </li> </ul> </div> </template>
<script> export default { name: 'helloworld', data () { return { test: [ { id: 1, title: 'title first' }, { id: 2, title: 'title second' }, { id: 3, title: 'title third' } ], isactive: '' } }, methods: { onmouseenter(index) { this.isactive = index }, onmouseleave() { this.isactive = '' }, deleteitem(index) { this.test.splice(index, 1) } }, computed: { } } </script> <!-- add "scoped" attribute to limit css to this component only --> <style scoped> h1, h2 { font-weight: normal; } ul { list-style-type: none; padding: 0; } li { /* display: inline-block; */ margin:10px; } a { color: #42b983; } .defaultclass{ background-color: red; } </style>
总结
以上所述是小编给大家介绍的vue中v-for通过动态绑定class实现触发效果,希望对大家有所帮助