Vue.js:切换汉堡菜单图标 [英] Vue.js: toggle hamburger menu icons
本文介绍了Vue.js:切换汉堡菜单图标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有汉堡菜单图标的标题,当我单击它时,我想将其更改为十字图标.如何在 Vue 模板中做到这一点?我在计算属性中创建了一个函数,但我不确定我应该做什么.
这是我的菜单图标:
这是我的 CSS:
.top-icon {背景:#29afd1;显示:内联块;边框半径:500px;边距:10px;位置:相对;填充:80px;光标:指针;}.main-item {宽度:150px;高度:150px;位置:相对;}.线 {位置:绝对;高度:15px;宽度:100%;背景:白色;边框半径:10px;过渡:所有cubic-bezier(0.25, 0.1, 0.28, 1.54) 0.32s;}.line01 {顶部:19%;}.line02 {最高:49%;}.line03 {最高:79%;}.menu.close .line01 {变换:旋转(45度);最高:49%;}.menu.close .line02, .menu.close .line03 {变换:旋转(-45度);最高:49%;}
到目前为止,这是我在脚本标签中的内容:
data() {返回 {showTopMenu: 假,};},计算:{切换TopMenu() {},
解决方案
你是说这种实现吗?我刚刚在你的代码中添加了 v-if
和 v-else
请检查下面的代码片段:
new Vue({el: "#app",数据: {showTopMenu: 假,}})
.top-icon {背景:#29afd1;显示:内联块;边框半径:500px;边距:10px;位置:相对;填充:80px;光标:指针;}.main-item {宽度:150px;高度:150px;位置:相对;}.线 {位置:绝对;高度:15px;宽度:100%;背景:白色;边框半径:10px;过渡:所有cubic-bezier(0.25, 0.1, 0.28, 1.54) 0.32s;}.line01 {顶部:19%;}.line02 {最高:49%;}.line03 {最高:79%;}.menu.close .line01 {变换:旋转(45度);最高:49%;}.menu.close .line02, .menu.close .line03 {变换:旋转(-45度);最高:49%;}
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.13/dist/vue.js"></script><div id="应用程序"><div class="top-icon" class="toggleTopMenu" @click="showTopMenu = !showTopMenu"><div class="main-item menu" v-if="!showTopMenu"><span class="line line01"></span><span class="line line02"></span><span class="line line03"></span>
<div v-else>X