javascript - 同时动画导航菜单下拉菜单

标签 javascript html css

我正在尝试使用 JavaScript 为我的 subnav 设置动画。我想显示所有 subnavs,类似于“大型菜单”类型的导航。现在,它淡入,但从最右边的 subnav 淡入,产生渐变效果。我希望它们全部同时开始。

我怎样才能让它们同时具有动画效果?

参见Codepen用于 HTMLCSS

这是 JS block :

  nav.forEach(elem => {
    elem.addEventListener('mouseenter', () => {
      const subnav = document.querySelectorAll('.subnav-block');
      subnav.forEach(sub => {
        sub.classList.add('display-block');
        setTimeout(() => {
          sub.style.opacity = 1;
        }, 100);
      });
    });

    elem.addEventListener('mouseleave', () => {
      const subnav = document.querySelectorAll('.subnav-block');
      subnav.forEach(sub => {
        sub.classList.remove('display-block');
        sub.style.opacity = 0;
      });
    });
  });

最佳答案

您的 JavaScript 没有问题。所有的子导航都在同时进行动画处理:问题是它们重叠了。使用您现在的 CSS,您的第一个子导航位于其他两个之后,第二个位于第三个之后,如下所示:

[子导航 1 [子导航 2 [子导航 3]]]

您可以使用浏览器的检查元素选项进行验证。

当第二个和第三个子导航变透明时,您可以看到它们后面的第一个子导航,因此它们显得更暗。您需要更改 CSS 以使它们不重叠。

关于javascript - 同时动画导航菜单下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57046193/

相关文章:

javascript - 每个 div 内必须至少选中一个复选框

javascript - 访问已删除然后重新创建的帐户的个人资料照片时,Firebase 返回 "no-referrer-when-downgrade"

javascript - dc.js 如何在 renderAll 之后更新 yscale

javascript - 如何使用 WebRTC 停止屏幕共享?

javascript - 将 Javascript/HTML 表单功能添加到 COGNOS Report Studio v10 中的 'html item'

javascript - 将一个框放置在主 DIV 之外,但仍与其相关

javascript - 如何设置水平滚动位置 react

html - 使 div 在可变高度的 div 下滚动

javascript - 使用 JavaScript(可能是 CSS)在特定宽度/高度的 HTML5 Canvas 中显示完整图像尺寸(100% 宽度/高度)

html - 第一个 child 选择器不工作