如何使用 CSS 在下拉菜单上放置动画?

心态

/*.dropdownMenuLista {
  -webkit-transition: max-height 0.5s, opacity 0.2s 0.1s, visibility 0s 4s;
  -moz-transition: max-height 0.5s, opacity 0.2s 0.1s, visibility 0s 4s;
  -ms-transition: max-height 0.5s, opacity 0.2s 0.1s, visibility 0s 4s;
  -o-transition: max-height 0.5s, opacity 0.2s 0.1s, visibility 0s 4s;
  transition: max-height 0.5s, opacity 0.2s 0.1s, visibility 0s 4s;
  max-height: 0;
  display: block;
  padding: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
}

.dropdownMenu {
  -webkit-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  -moz-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  -ms-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  -o-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  max-height: 290px;
  opacity: 1;
  visibility: visible;
  padding: 0;
}*/

ul.ulDropMenu{
        float: left;
    }
    ul.ulDropMenu li{
        float: left;
        list-style: none;
        position: relative;
    }
    ul.ulDropMenu li a{
        display: block;
        padding: 9px 14px;
    }
    ul.ulDropMenu li ul{
        display: none;
        position: absolute;
        background-color: #fff;
        border-radius: 4px;
        padding: 8px;
    }
    ul.ulDropMenu li:hover ul{
        display: block;
    }
    ul.ulDropMenu li ul li{
        width: 120px;
    }
    ul.ulDropMenu li ul li a{
        padding: 6px 14px;
        color: #2A2A2A;
    }
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>

    <ul class="ulDropMenu">

      <li class="pr-5 dropdownMenu">

        <a class="nav-link" id="navbarDropdown" aria-haspopup="true" aria-expanded="false" role="button" data-toggle="dropdown" style="transition: color .4s;" href="#">Drop Menu
        <i class="fa fa-caret-down"></i>
          
        </a>

          <ul class="dropdownMenuLista">                     

            <li aria-labelledby="navbarDropdown">
              <a style="transition: color .4s;" href="#">items</a>
              <a style="transition: color .4s;" href="#">items</a>
              <a style="transition: color .4s;" href="#">items</a>
            </li>

          </ul>

      </li>

    </ul>

如何transition在此下拉菜单上放置动画我有这段代码应该在下拉菜单上放置动画,但它不起作用。

当我添加课程时dropdownMenuListadropdownMenu下拉菜单停止工作。

我正在使用引导程序,但我不想使用引导程序中的 JS 下拉菜单。CSS出于某些目的,我需要一个下拉菜单版本.....

雅安·奥拉斯

整个事情可以清理很多,但这样做不会向你解释什么是错的,所以我只会改变必要的东西。

这里的核心问题是你不能从max-heightofdisplay: none动画display: block,因为没有max-height用于非块项目。

因此,我们需要删除开关displayul.ulDropMenu li:hover ul. dropdownMenuLista)元素和显示/隐藏一些其他的方式。由于它隐藏在.dropdownMenuLista类,由max-heightopacityvisibility道具,我们需要启用那些徘徊。

此外,您的可见性动画为 4 秒,但其他动画为 < 1 秒。因此,可能可见的动画将在 4 秒后元素实际可见之前运行。

所有更改都用注释标记为代码段。

.dropdownMenuLista {
  -webkit-transition: max-height 1s, opacity 0.2s 0.1s;
  -moz-transition: max-height 1s, opacity 0.2s 0.1s;
  -ms-transition: max-height 1s, opacity 0.2s 0.1s;
  -o-transition: max-height 1s, opacity 0.2s 0.1s;
  transition: max-height 1s, opacity 0.2s 0.1s;
  
  /* removed visibility animation */
  
  max-height: 0;
  display: block;
  padding: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
}

.dropdownMenu {
  -webkit-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  -moz-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  -ms-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  -o-transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  transition: max-height 0.6s, opacity 0.2s, visibility 0s;
  max-height: 290px;
  opacity: 1;
  visibility: visible;
  padding: 0;
}

ul.ulDropMenu{
        float: left;
    }
    ul.ulDropMenu li{
        float: left;
        list-style: none;
        position: relative;
    }
    ul.ulDropMenu li a{
        display: block;
        padding: 9px 14px;
    }
    ul.ulDropMenu li ul{
       /* display: none; - cannot animate */
        
        position: absolute;
        background-color: #fff;
        border-radius: 4px;
        padding: 8px;
    }
    ul.ulDropMenu li:hover ul{
        /*  display: block; - cannot animate */
      
        
        /* show by enabling all props that
        hide this element in .dropdownMenuLista
        style */
        max-height: 290px;
        visibility: visible;
        opacity: 1;      
    }
    ul.ulDropMenu li ul li{
        width: 120px;
    }
    ul.ulDropMenu li ul li a{
        padding: 6px 14px;
        color: #2A2A2A;
    }
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>

    <ul class="ulDropMenu">

      <li class="pr-5 dropdownMenu">

        <a class="nav-link" id="navbarDropdown" aria-haspopup="true" aria-expanded="false" role="button" data-toggle="dropdown" style="transition: color .4s;" href="#">Drop Menu
        <i class="fa fa-caret-down"></i>
          
        </a>

          <ul class="dropdownMenuLista">                     

            <li aria-labelledby="navbarDropdown">
              <a style="transition: color .4s;" href="#">items</a>
              <a style="transition: color .4s;" href="#">items</a>
              <a style="transition: color .4s;" href="#">items</a>
            </li>

          </ul>

      </li>

    </ul>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用CSS3动画为下拉菜单设置动画?

来自分类Dev

如何在下拉菜单中创建子菜单(HTML / CSS)

来自分类Dev

如何处理CSS下拉菜单上的空白?

来自分类Dev

在下拉菜单中转换CSS下拉菜单

来自分类Dev

如何将导航集中在下拉菜单上?

来自分类Dev

如何在下拉菜单上添加悬停效果?

来自分类Dev

使用Alpine JS悬停在下拉菜单上

来自分类Dev

使用Bootstrap这样的纯CSS制作动画下拉菜单

来自分类Dev

如何居中基于CSS的下拉菜单?

来自分类Dev

Animate.css使用下拉菜单

来自分类Dev

我无法使用CSS下拉菜单

来自分类Dev

我无法使用CSS下拉菜单

来自分类Dev

使用CSS的水平下拉菜单

来自分类Dev

使用CSS的下拉菜单:target伪

来自分类Dev

使用CSS水平显示下拉菜单

来自分类Dev

使用JavaScript隐藏CSS下拉菜单

来自分类Dev

使用CSS构建下拉菜单

来自分类Dev

如何使用CSS使下拉菜单淡入淡出

来自分类Dev

如何使用CSS使下拉菜单淡入淡出

来自分类Dev

如何使用HTML和CSS制作下拉菜单?

来自分类Dev

如何使用我当前的 CSS 添加下拉菜单?

来自分类Dev

如何使用 HTML 和 CSS 添加下拉菜单

来自分类Dev

如何使用同级选择器在下拉菜单上切换箭头

来自分类Dev

我应该如何在下拉菜单上使用多个标签?

来自分类Dev

我应该如何在下拉菜单上使用多个标签?

来自分类Dev

似乎无法将鼠标悬停在下拉菜单上以通过CSS工作

来自分类Dev

如何在悬停在菜单上时将其保留在下拉菜单中?

来自分类Dev

CSS:在下拉菜单顶部放置带有边框的箭头/三角形

来自分类Dev

使用CSS创建下拉菜单和子菜单导航