ちいつる

通知・オーバーレイ

ドラッグ式ボトムシート

画面下からせり出すシート。ハンドルをドラッグして「半分/全開/閉じる」の3段階にスナップする。iOS/AndroidのモバイルUI定番。

ENGLISH

Draggable Bottom Sheet

  • JS
103通知・オーバーレイ の一覧 →

プレビュー

ドラッグ

操作ドラッグ/スワイプで操作できます(PC・スマホ対応)。

実装メモ

ハンドルの pointerdown でドラッグを開始し、move/up は document で受けて(指がハンドルから外れても追従)シートの translateY を直接更新、離した瞬間に最寄りのスナップ点(全開0 / 半分120 / 閉じ240px)へ transition で吸着させます。ドラッグ中は transition を切って指に追従、スナップ時だけ効かせるのがなめらかさの要点。ハンドルとシートに touch-action:none を付け、縦ドラッグが枠のスクロールと競合しないようにしています。背景の暗さはシートの開き具合に連動します。

コード(コピーして使えます)

<div class="bs-screen" id="bs-screen">
  <div class="bs-content">
    <button class="bs-open" id="bs-open">シートを開く</button>
  </div>
  <div class="bs-backdrop" id="bs-backdrop"></div>
  <div class="bs-sheet" id="bs-sheet">
    <div class="bs-handle" id="bs-handle"><span></span></div>
    <div class="bs-inner">
      <h3>共有する</h3>
      <ul class="bs-list">
        <li><span class="bs-ic">🔗</span>リンクをコピー</li>
        <li><span class="bs-ic">✉️</span>メールで送る</li>
        <li><span class="bs-ic">💬</span>メッセージ</li>
        <li><span class="bs-ic">⭐</span>お気に入りに追加</li>
        <li><span class="bs-ic">⬇️</span>ダウンロード</li>
      </ul>
    </div>
  </div>
</div>

タグ

関連パーツ