You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击汉堡图标后如何为导航栏列表元素添加过渡效果

问题原因

CSS transition 不支持display属性的状态切换,你当前通过切换display: none和display: flex控制菜单显隐的方式,无法触发过渡效果。

解决方案

仅需要调整CSS样式即可,原有JS逻辑无需修改:

nav ul {
    display: flex;
    margin: 0;
    padding: 0 0 0 1em;
    list-style: none;
    overflow: hidden;
    /* 隐藏状态样式 */
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    /* 配置过渡效果,时长可自行调整 */
    transition: all 0.3s ease;
}

.nav-ul.show {
    /* 展开状态样式,max-height设置为大于菜单实际最大高度的值即可 */
    max-height: 200px;
    padding-top: 1em;
    opacity: 1;
    visibility: visible;
}

补充说明

使用max-height替代height: auto可以实现更丝滑的过渡效果,避免部分浏览器对auto高度过渡的兼容问题。如果你的菜单后续会增加条目,只需要调大max-height的数值即可。

内容的提问来源于stack exchange,提问作者ceaiius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:06:04