【发布时间】:2018-03-02 09:54:53
【问题描述】:
我在菜单项中有一个箭头图标。当我单击此项目时,会下拉一个小的附加菜单。我需要找到一个解决方案,如何在出现下拉菜单的同时旋转我的图标。我的方法不起作用。
这是我在 Vue 组件中的内容:
<nav>
<section class="nav-item" @click="showDropdown = !showDropdown">
<div class="nav-icon">
<img src="../../../assets/img/users.svg" />
</div>
<h4>Users</h4>
<div class="arrow" :class="arrowLeft">
<img src="../../../assets/img/arrow_down.svg" />
</div>
<div v-if="showDropdown">
<span class="sub-nav-item">Import</span>
<span class="sub-nav-item">Invitations</span>
</div>
</section>
<section class="nav-item">
<div class="nav-icon">
<img src="../../../assets/img/polls.svg" />
</div>
<h4>Poll</h4>
</section>
</nav>
在我的脚本标签中:
<script>
export default {
data() {
return {
showDropdown: false,
};
},
computed: {
arrowLeft() {
let arrow = 'turn-arrow';
if (this.showDropdown === true) {
return arrow;
}
return true;
},
},
};
</script>
我的 CSS:
.arrow {
display: inline;
height: 7px;
width: 13px;
margin-left: 13px;
}
.turn-arrow {
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
【问题讨论】:
-
试试
<div class="arrow" :class="{arrowLeft: arrowLeft}"> -
不幸的是,它没有成功。我之前的解决方案实际上添加了一个带有变换的新类,但它并没有移动我的图标......
-
这是一种非常精细的方法。完全删除计算的
arrowLeft并将 div 替换为<div class="arrow" :class="{'turn-arrow': showDropdown}"> -
它仍然添加了一个带有转换的类,但没有任何反应。也许动画本身有问题?
-
没有其他想法。只要确保你的 CSS 被正确加载。
标签: javascript css animation vue.js rotation