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

移动端导航链接动画异常:主动画结束后显示导航链接的实现

修复移动端导航链接动画延迟问题

问题根源

桌面端依靠.nav-main的3D变换遮挡效果,让导航链接看起来在主动画结束后才显示,但移动端视口下遮挡失效,导致导航链接直接出现。核心问题是导航链接的动画没有设置与主动画(main-animation,时长0.5s)匹配的延迟。

修复步骤

1. 调整导航链接容器的显示逻辑

给.nav-links添加初始隐藏状态,并设置延迟显示的过渡,确保主动画结束后才显示容器:

.nav-links {
  position: absolute;
  width: 30%;
  right: 0;
  top: 0;
  height: 90vh;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  /* 新增以下代码 */
  opacity: 0;
  transition: opacity 0s ease;
  transition-delay: 0.5s; /* 与main-animation时长一致 */
}

.nav-container.active .nav-links {
  opacity: 1;
  transition-delay: 0.5s; /* 等待主动画结束后显示 */
}

2. 给导航链接的出现动画添加基础延迟

调整.nav-links a的动画延迟,让所有链接在主动画结束后再依次出现:

.nav-container.active .nav-links a {
  /* 将原var(--i)改为calc(0.5s + var(--i)),添加0.5s基础延迟 */
  animation: appear 1.5s forwards ease calc(0.5s + var(--i));
}

3. 移除无效动画

删除.nav-container.active .nav-main中未定义的nav-links-animation动画:

.nav-container.active .nav-main {
  /* 移除nav-links-animation,保留main-animation即可 */
  animation: main-animation 0.5s ease;
  cursor: pointer;
  transform: perspective(1200px) rotateY(20deg) translateZ(310px) scale(0.5);
}

修改后效果

点击汉堡菜单后,.nav-main先完成0.5s的主动画,之后.nav-links容器显示,同时导航链接按设置的延迟依次淡入,移动端和桌面端行为保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:47:51