web-dev-qa-db-ja.com

アニメーションドロップダウンメニューBootstrap 4

ドロップダウンがbootstrap(4.0)に陥るネイティブの方法はアニメーション化されません。折りたたまれたときのnavbarのように「スライド」を開くにはどうすればよいですか?

ドロップダウンがナビゲーションバー内にあることに注意してください。以下をご覧ください。 https://www.codeply.com/go/JKj5onR3ug

<nav class="navbar navbar-dark bg-dark">
  <a class="navbar-brand" href="#">Never expand</a>
  <button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#navbarsExample01" aria-controls="navbarsExample01" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="navbar-collapse collapse" id="navbarsExample01" style="">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
        <div class="dropdown-menu" aria-labelledby="dropdown01">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
    </ul>
  </div>
</nav>
5
Michael Ruta

transform: scaleを使用して純粋なCSSでドロップダウンアニメーションを作成した方法は次のとおりです。

SCSSスタイル

.dropdown {
    .dropdown-menu {
        transition: all 0.5s;
        overflow: hidden;
        transform-Origin: top center;
        transform: scale(1,0);
        display: block;
    }
    &:hover {
        .dropdown-menu {
            transform: scale(1);
        }
    }
}

Codepen のデモを確認してください

4
Alex Jolig

最も簡単な方法は、「ドロップダウン」の代わりに「折りたたみ」を使用して切り替えることです。次に、collapsingアニメーションがアクティブなときに表示されることを確認するために、少しのCSSが必要です。 position-relativedropdown-menu

.dropdown-menu.collapsing {
    display:block;
}

Codeplyで試してみてください


「ドロップダウンは、Popper.jsのおかげで配置されます(ナビゲーションバーに含まれている場合を除く)。」

Navbar内のドロップダウンの配置が異なる 標準のボタンドロップダウンを使用した別の例: https://www.codeply.com/go/vJhVEh9Okd


別の方法は、 Bootstrap 3.xドロップダウンアニメーションテクニック のいずれかを使用することです。

3
Zim

ドロップダウンのcssをオーバーライドする必要があります。このCSSを使用してください。

.dropdown-menu {
    display: block;
}

.navbar-nav .dropdown-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s;
}

.navbar-nav .dropdown-menu.show {
    max-height: 500px;
}
1
Abhay Srivastav