[英]How to show/hide submenu with animation in vuejs
I'm new to vuejs and I want to create a menu with below html structure.我是 vuejs 的新手,我想创建一个具有以下 html 结构的菜单。
<ul>
<li><a href="" v-on:click="toggleMenu">item 1</a>
<ul class="list-unstyled">
<li><a href="">submenu 1-1</a></li>
<li><a href="">submenu 2-1</a></li>
<li><a href="">submenu 3-1</a></li>
</ul>
</li>
<li><a href="" v-on:click="toggleMenu">item 2</a>
<ul class="list-unstyled">
<li><a href="">submenu 1-2</a></li>
<li><a href="">submenu 2-2</a></li>
</ul>
</li>
</ul>
submenu's are hidden with css.子菜单被 css 隐藏。
I want when I click on item 1
link, the child ul
element will be toggled with slide down animation.我希望当我单击第item 1
链接时,子ul
元素将通过向下滑动 animation 进行切换。 And also this will happens for item 2 and others.这也将发生在第 2 项和其他项上。
I wrote a demo for the first submenu.我为第一个子菜单写了一个演示。 I use the transition component for the animation.我使用 animation 的过渡组件。 you can also visit https://codesandbox.io/s/polished-butterfly-z1zf8?file=/src/App.vue:0-1263也可以访问https://codesandbox.io/s/poliished-butterfly-z1zf8?file=/src/App.vue:0-1263
<template>
<div id="app">
<ul>
<li>
<a href="javascript:;" v-on:click="item1Visible = !item1Visible">item 1</a>
<transition name="slideDown">
<ul class="list-unstyled" v-show="item1Visible">
<li>
<a href>submenu 1-1</a>
</li>
<li>
<a href>submenu 2-1</a>
</li>
<li>
<a href>submenu 3-1</a>
</li>
</ul>
</transition>
</li>
<li>
<a href="javascript:;" v-on:click="item2Visible = !item2Visible">item 2</a>
<ul class="list-unstyled" v-show="item2Visible">
<li>
<a href>submenu 1-2</a>
</li>
<li>
<a href>submenu 2-2</a>
</li>
</ul>
</li>
</ul>
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
item1Visible: true,
item2Visible: true
};
}
};
</script>
<style>
.slideDown-enter-active,
.slideDown-leave-active {
transition: all 0.5s ease-out;
overflow: hidden;
}
.slideDown-enter, .slideDown-leave-to /* .fade-leave-active below version 2.1.8 */ {
height: 0;
}
.slideDown-enter-to,
.slideDown-leave {
height: 50px;
}
</style>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.