本文へスキップ

1文字ずつ出現

見出しの文字が1つずつ波打つように現れる。ヒーロー見出しのインパクトに。

プレビュー

スクロール

操作枠内をスクロールすると動きます。

仕様書

向く場面
  • ヒーロー見出しの登場
  • 短いキャッチコピー(10 文字前後)
  • 文字そのものを主役にしたい場面
避ける場面
  • 本文・長文(読めるまで待たせる)
  • 英単語の見出し(1文字ずつの分割で読み上げが崩れる)
構成要素
  • スクロールヒント
  • 見出し
  • 1文字ごとの span
持っている状態
  • 通常
キーボード

スクロール(キーボードは ↑↓/PageDown で可)。操作要素は無い

支援技術

見出しは h2。分割前の文を aria-label に持たせ、1 文字 span は aria-hidden にして語単位で読ませる。reduced-motion では最初から全文表示

動き

1文字 400ms ease・20px 上昇、90ms ずつ遅延して波打つ。可視率 60% で一度だけ

デザインの要点

  • 1 文字 400ms・90ms 刻み。10 文字で最後が約 1.3 秒後。それ以上の長さはキャッチコピーでも待たせる
  • span は inline-block にする。inline のままだと transform が効かず、上昇の波が出ない
  • 空白は nbsp に置き換える。空の span は幅 0 に潰れて単語間が詰まる
  • 分割は Array.from(書記素)で行い、元の文を aria-label に残す。1 文字ずつの DOM は読み上げが崩れる

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

<div class="scroll-hint">↓ スクロール ↓</div>
<h2 class="reveal-text">ようこそ、ちいつるへ</h2>

タグ

同じカテゴリ「スクロールアニメーション」のほかのパーツ

関連パーツ