如何解决侧边栏菜单点击收齐时宽度回弹的问题?-灵析社区

皮皮踢

菜单侧边栏点击收齐的时候,宽度会回弹一下,没有在js里面控制或者直接修改宽度,第一个图片是useRenderLayout,第二个是Menu 版本号: "element-plus": "^2.6.1", ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250113/dfb9fa63a205ce918ba46fa0a2f2a5a3.png) ![PixPin_2024-09-09_10-45-38.gif](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250113/2569c518048aca125957d293a3413045.png) css :root { --el-aside-max-width: 200px; --el-aside-min-width: 64px; --el-aside-width: 200px; } //useRenderLayout.scss $prefix-cls-left: #{$namespace}-render-left; .#{$prefix-cls-left} { display: flex; height: 100%; .aside-max-width { width: var(--el-aside-max-width); } .aside-min-width { width: var(--el-aside-min-width); } .main-content { flex: 1; .app-View { height: calc(100% - 40px); padding: 10px 20px 20px; } } } // Menu.vue $prefix-cls: #{$namespace}-menu; .#{$prefix-cls} { height: 100%; background-color: rgba(255, 255, 255, 0); width: 100%; // 对宽度有个两秒的动画=>感觉没啥用,没生效 transition: width 0.2s; // 折叠动画的时候,就需要把文字给隐藏掉 :deep(.el-menu--collapse) { // background-color: red; // transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out !important; .#{$prefix-cls}__title { display: none; } } } ` transition: width 0.2s;` 我给宽度加了一个这个 也不管用 ,我想知道它回弹的原因和解决办法

阅读量:225

点赞量:10

问AI
分析 因为这个不涉及到js,存样式行为。所以我觉得当你折叠的时候,隐藏"菜单文字"那块还有行内元素宽度。 1、你看看用v-if与v-show方式都试试 2、或将"菜单文字"div容器不用padding用margin 3、又或"菜单文字"div容器不用padding与margin,对icon配置margin-left方式 所以我觉得问题在 "菜单文字"容器那块 F12看看"元素"的变化。仅个人猜想希望对你有帮助。