【发布时间】:2020-02-21 08:35:35
【问题描述】:
如何根据点击的项目仅旋转那个箭头图标?
new Vue({
el: "#app",
data() {
return {
isToggled: false,
items: [{
id: 1,
name: "Test1"
},
{
id: 2,
name: "Test2"
},
{
id: 3,
name: "Test3"
},
{
id: 4,
name: "Test4"
},
]
}
},
methods: {
arrowToggle() {
this.isToggled = !this.isToggled;
},
getItems() {
return this.items;
}
},
mounted() {
this.getItems();
}
});
i {
border: solid black;
border-width: 0 3px 3px 0;
display: inline-block;
padding: 3px;
}
.down {
transform: rotate(45deg);
}
.up {
transform: rotate(-155deg);
}
.accordion {
display: flex;
background: lightblue;
align-items: center;
width: 100%;
width: 1000px;
justify-content: space-between;
height: 30px;
padding: 0 20px;
}
.arrow {
transform: rotate(-135deg);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app" style="display: flex; justify-content: center; align-items: center;">
<div v-for="(item, index) in items" :key="index">
<div class="accordion" @click="arrowToggle()">
<p> {{ item.name }}</p>
<i :class="{ 'down': item.isToggled }" class="arrow"> </i>
</div>
</div>
</div>
我希望我的箭头根据点击的元素旋转吗? 如果我有 10 个项目并单击 2 个项目,我希望图标在那里旋转。 无法将 id 绑定到单击的项目并绑定该类以旋转项目 一件事非常重要,我无法在我的 json 项目中设置 isOpen 参数,这是每个人都向我推荐的错误。我从数据库中得到它,我没有它的条件。
【问题讨论】:
-
如果其他图标被旋转并且你也点击了一个图标,那些其他图标也会旋转到它的默认位置?
-
只需要旋转点击的图标(项目)。其他没有。
-
你必须映射你从服务器接收到的数据并像 isOpen 数据一样附加到那里。
-
这能回答你的问题吗? How to arrow toggle up and down? Vue
-
是的,但我没有回答。
标签: javascript html css vue.js