Snippets Animation

Bootstrap 5 Floating Draggable Action Menu

A floating action menu that fans out a row of round icon buttons when tapped and can be dragged anywhere on the canvas.

Bootstrap 5 No jQuery Mar 2020 2.1K views

<section class="wdw-stage p-0">
  <div class="fab-stage position-relative overflow-hidden w-100" id="fabStage">
    <div class="fab-bar d-flex align-items-center gap-3 px-4" aria-hidden="true">
      <span class="wdw-icon"><i class="bi bi-grid-1x2-fill"></i></span>
      <span class="sk" style="width:90px"></span>
      <span class="sk ms-auto d-none d-sm-block" style="width:60px"></span><span class="sk d-none d-sm-block" style="width:60px"></span><span class="sk" style="width:36px;height:36px;border-radius:50%"></span>
    </div>
    <div class="fab-copy text-center" id="fabCopy">
      <span class="wdw-eyebrow mb-2">Floating action menu</span>
      <h2 class="wdw-heading display-6 mb-2">Drag the menu where you want</h2>
      <p class="wdw-muted mb-0">Tap the button to fan out actions, or grab it and move it anywhere.</p>
    </div>
    <div class="fab-cards container" style="max-width:1000px" aria-hidden="true">
      <div class="row g-3">
        <div class="col-12 col-md-4"><div class="wdw-card-sm p-3"><span class="sk mb-3" style="width:40%"></span><span class="sk mb-2" style="width:90%"></span><span class="sk mb-2" style="width:75%"></span><span class="sk" style="width:55%"></span></div></div>
        <div class="col-md-4 d-none d-md-block"><div class="wdw-card-sm p-3"><span class="sk mb-3" style="width:50%"></span><span class="sk mb-2" style="width:85%"></span><span class="sk mb-2" style="width:70%"></span><span class="sk" style="width:60%"></span></div></div>
        <div class="col-md-4 d-none d-md-block"><div class="wdw-card-sm p-3"><span class="sk mb-3" style="width:35%"></span><span class="sk mb-2" style="width:92%"></span><span class="sk mb-2" style="width:68%"></span><span class="sk" style="width:48%"></span></div></div>
      </div>
    </div>
    <div class="fab-menu" id="fabMenu" role="toolbar" aria-label="Floating menu">
      <div class="fab-tray" aria-hidden="true"></div>
      <button type="button" class="fab-item fab-toggle btn btn-primary rounded-circle" aria-label="Toggle menu" aria-expanded="false" aria-controls="fabMenu"><i class="bi bi-list" aria-hidden="true"></i></button>
      <button type="button" class="fab-item btn btn-light rounded-circle shadow-sm" aria-label="Profile" data-bs-title="Profile"><i class="bi bi-person" aria-hidden="true"></i></button>
      <button type="button" class="fab-item btn btn-light rounded-circle shadow-sm" aria-label="Messages" data-bs-title="Messages"><i class="bi bi-chat-dots" aria-hidden="true"></i></button>
      <button type="button" class="fab-item btn btn-light rounded-circle shadow-sm" aria-label="Favourites" data-bs-title="Favourites"><i class="bi bi-heart" aria-hidden="true"></i></button>
      <button type="button" class="fab-item btn btn-light rounded-circle shadow-sm" aria-label="Settings" data-bs-title="Settings"><i class="bi bi-gear" aria-hidden="true"></i></button>
    </div>
  </div>
</section>

Built on Bootstrap 5.3.8 with plain JavaScript — no jQuery. Supports light and dark mode via data-bs-theme.