本文へスキップ

カーテン遷移

ボタンを押すと色面がスライドして画面を覆い、めくれて次の内容が現れる。ページ切り替え演出の定番。

ENGLISH

Curtain Page Transition

  • JS
約105行動きと演出 / 演出・リッチ の一覧 →

プレビュー

クリック

操作クリック/タップで動きます。

仕様書

向く場面
  • ページ・セクション切替の場面転換
  • ゲーム・ポートフォリオの画面遷移演出
  • 内容の差し替えを一拍置いて見せたいとき
避ける場面
  • 頻繁に切り替える一覧のタブ(待たされる)
  • 本文を読む途中で自動発火する遷移
  • reduce 設定で代替の無い組み込み
構成要素
  • シーン1
  • シーン2
  • 遷移ボタン
  • 暗幕(カーテン)
持っている状態
  • 通常
  • ホバー
  • フォーカス
キーボード

Tab で「次へ」「戻る」ボタンに到達・Enter/Space で遷移を開始する。遷移後は表示側のボタンへフォーカスが移る。遷移中の連打は busy で無視

支援技術

非表示側のシーンに aria-hidden と inert を付け替え、読み上げと Tab の対象から外す。暗幕は pointer-events none の装飾。reduce では暗幕を出さず即座に切り替える

動き

暗幕が左から入る 380ms・右へ抜ける 380ms(cubic-bezier .4,0,.2,1)。切替の瞬間を隠して場面転換を演出。reduce では即時

デザインの要点

  • 中身の差し替えは暗幕が画面を覆い切った animationend で行う。覆う前に変えると次の内容が一瞬透ける
  • 入りと抜けを同じ 380ms・同じイージングにし、抜けは反対側へ流す。往復させると「戻った」印象になる
  • 隠したシーンには opacity 0 だけでなく inert を付ける。見えないボタンに Tab が入ると操作が迷子になる
  • reduce 設定では暗幕を省いて即座に切り替え、終状態を同じにする。animationend 待ちのまま止めると永久に遷移しない

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

<div class="ct-stage">
  <div class="ct-scene ct-scene--a">
    <p class="ct-text">シーン 1</p>
    <button class="ct-btn" type="button">次へ →</button>
  </div>
  <div class="ct-scene ct-scene--b" aria-hidden="true" inert>
    <p class="ct-text">シーン 2</p>
    <button class="ct-btn" type="button">← 戻る</button>
  </div>
  <div class="ct-curtain" aria-hidden="true"></div>
</div>

タグ

同じカテゴリ「演出・リッチ」のほかのパーツ

関連パーツ