transition实现隐藏显示菜单栏效果

今天使用<transition>标签做了隐藏显示菜单栏的效果,下面和小编一起来看看如何实现吧
我们知道<transition>标签是用来做动画效果的,把菜单栏的隐藏和显示看做一个动画效果就可以了
菜单容器的css动画样式如下:

-webkit-transition: all 300ms cubic-bezier(0.02, 0.86, 0.25, 0.97);
    -moz-transition: all 300ms cubic-bezier(0.02, 0.86, 0.25, 0.97);
    -o-transition: all 300ms cubic-bezier(0.02, 0.86, 0.25, 0.97);
    transition: all 300ms cubic-bezier(0.02, 0.86, 0.25, 0.97);
    user-select: none;
    -o-user-select: none;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;

使用vue给菜单容器绑定另一个样式
绑定代码示例

:class="{ 'menu-content-container-no': MenuActiveKey == 0,  }" 

其中,menu-content-container-no是绑定的另一个css样式
MenuActiveKey 是data里声明的一个数据,
MenuActiveKey 的值为1 ,表示 显示菜单
MenuActiveKey 的值为0 ,表示 隐藏菜单
MenuActiveKey 的值默认为1,显示菜单
在这里插入图片描述
menu-content-container-no样式里写的是 隐藏菜单的样式

display: none;
transform: translate3d(100%, 0, 0);

菜单默认情况下是打开的,点击按钮(添加一个判断条件:v-if="MenuActiveKey == 1")使菜单隐藏,给按钮添加click事件
代码示例:

handleRest() {
   this.MenuActiveKey = this.MenuActiveKey == 0 ? 1 : 0;
},

隐藏菜单后,会显示另一个按钮,点击此按钮会显示菜单:
按钮的要加一个判断条件 v-if="MenuActiveKey == 0"

 handleChangeNum() {
    this.MenuActiveKey = this.MenuActiveKey == 0 ? 1 : 0;
}
,

注意:
<transition>标签里写内容的时候,在<transition>标签里写一个<div>标签,把所有的内容都放在这个<div> 标签里,否则会报错

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue的transition组件可以实现元素的显示隐藏过渡效果。你可以通过为transition组件添加name属性来设置过渡名称,然后根据该名称创建六个类来控制过渡效果。例如,name="demo"表示显示的过程(由隐藏的状态变成显示的状态),.demo-enter、.demo-enter-to、.demo-enter-active表示隐藏的过程(由显示状态变成隐藏的状态),.demo-leave、.demo-leave-to、.demo-leave-active。transition组件只是添加了这六个类,具体的过渡效果需要通过CSS过渡或动画来实现。如果你想实现入场过渡效果,可以为transition组件添加appear属性,这样当元素加载时会执行动画。下面是一个使用transition组件实现显示隐藏过渡效果的示例代码: ```html <div id="app"> <button @click="toggle">切换</button> <!-- 通过name定义名称 --> <!-- 我们通过为transition组件添加appear属性,实现入场过渡:当元素加载的时候,执行动画 --> <transition name="demo" appear> <div class="box" v-show="isShow"></div> </transition> </div> ``` 你可以根据自己的需求修改name属性和CSS样式来实现不同的过渡效果。 #### 引用[.reference_title] - *1* [vue3 transition 隐藏过渡,折叠过渡效果实现](https://blog.csdn.net/qq_31254489/article/details/121023860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [vue transition 过渡动画](https://blog.csdn.net/ruantianqing/article/details/112602028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值