vue-elementUl导航菜单栏折叠和展开会卡顿一秒文字才消失如何处理,菜单折叠动画实现方法

老规矩,先上图看下是不是跟你的问题一样

在这里插入图片描述
这就是我的菜单遇到的问题,用的elementul的菜单来做的,但是我这个折叠动画会在最后卡一秒,然后在完全折叠,展开倒是正常的,就是折叠一直有延迟一秒文字消失。让我很头疼。网上看了很多办法,最后我找到了一个很实用的办法。

思路

一开始我是看了网上说让我给:collapse-transition属性改成true。然后一定要记得加样式才行,如下:

.el-menu-vertical-demo:not(.el-menu--collapse){
		width: 250px;			//宽度自己掌握
		height: 100%;
	}

但是我加了后不生效!!我试过了放在本组件!也试过放总的scss文件!也试过deep穿透就是不生效???
然后我就又找了一圈发现,既然我这个折叠的时候会把我菜单的el-aside部分宽度改变来达到折叠效果,那我何必要在菜单上下手,可以直接让菜单就:collapse-transition为false,禁用动画,然后我直接给el-aside加动画效果不就可以了。这样el-aside改变宽度折叠起来的时候有了动画不就是一样的效果了吗。

上代码

第一步:把你的el-menu组件加上属性 :collapse-transition=“false”
<template>
  <div >
    <el-menu :router="true" unique-opened :collapse="isCollapse" :collapse-transition="false">
          <!-- 菜单栏的标题 -->
              <div class="title " v-if="isCollapse">ha</div>
              <div class="title" v-else>我的后台系统</div>
              <!-- 菜单组件 -->
        <menus v-for="(item,index) in menuData" :key="index" :menu="item" ></menus>
    </el-menu>
  </div>
</template>
第二步:到你的main.vue或者是layout.vue组件,也就是主出口组件内加样式
html部分----
<el-aside>
        <!-- 菜单组件 -->
          <nav-left></nav-left>
</el-aside>
//给你的el-aside组件加上这个动画效果,然后你在点击试试就有效果了。
css部分----
  .el-aside {
    transition: width 0.15s;
  -webkit-transition: width 0.15s;
  -moz-transition: width 0.15s;
  -webkit-transition: width 0.15s;
  -o-transition: width 0.15s;
  }
  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Vue2后台系统中,左菜单栏折叠展开功能是指左侧导航菜单的可折叠展开状态。这个功能通常用来优化界面显示,当导航菜单过长时,可以将其折叠起来,以节省页面空间,增强用户体验。 实现菜单栏折叠展开功能可以考虑以下步骤: 1. 在Vue组件中定义一个变量menuCollapsed来标记左菜单栏折叠展开状态,默认为false。 2. 在菜单栏的最外层div元素上绑定一个class,通过类名来控制菜单栏的宽度和显示方式。通过:class绑定判断menuCollapsed的值,来添加折叠展开时的样式类。 3. 在菜单折叠展开按钮上绑定一个点击事件,点击时改变menuCollapsed的值,实现菜单栏折叠展开。 4. 在菜单项的列表上根据menuCollapsed的值来决定是否显示菜单项的文字。 具体代码如下: ```html <template> <div class="menu-container" :class="{'collapsed': menuCollapsed}"> <button class="collapse-button" @click="toggleMenu"> {{ menuCollapsed ? '展开' : '折叠' }} </button> <ul class="menu-items"> <li v-for="item in menuItems" :key="item.id" :class="{'hidden-text': menuCollapsed}"> {{ item.title }} </li> </ul> </div> </template> <script> export default { data() { return { menuCollapsed: false, menuItems: [ { id: 1, title: '菜单项1' }, { id: 2, title: '菜单项2' }, { id: 3, title: '菜单项3' } ] } }, methods: { toggleMenu() { this.menuCollapsed = !this.menuCollapsed; } } } </script> <style> .menu-container { width: 200px; transition: width 0.3s; } .collapsed { width: 50px; } .collapse-button { margin-bottom: 10px; width: 100%; text-align: center; } .hidden-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } </style> ``` 以上代码实现了一个简单的左菜单栏折叠展开功能。通过点击```.collapse-button```按钮,可以切换菜单栏折叠展开状态。菜单项目在折叠状态下会隐藏文字,并且用省略号表示。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

接口写好了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值