ページ遷移 (画面遷移)

円が広がってコンテンツが現れるページ遷移

CSSのみ!円が拡大して画面が現れるページ遷移アニメーション

See the Pen 円が広がってコンテンツが出現する by チータツ (@cheese_fuji) on CodePen.

Rerunで再アニメーション↑

デモページで見る

CSSの解説

全画面サイズのdiv要素と子要素を設置。
子要素の円がアニメーションで画面いっぱいに拡大したら、要素をまるごとフェードアウト。その下からコンテンツが出現(したように見える)という流れになっています。

  • 全画面サイズの要素.maskを用意
    • position: fixedで固定表示
    • z-indexに高い値を指定して最前面へ
    • width: 100vwheight: 100vhで画面サイズに
    • animationでフェードアウトを指定
    • 遅延時間animation-delayで、円のアニメーション直後にフェードアウトするよう調整(円のアニメーション+遅延時間 にする)
  • @keyframesでフェードアウトアニメーションを作成
    • 0%で不透明opacity: 1
    • 100%で透明+非表示(opacity: 0visibility: hidden
  • 子要素の円.circleを用意
    • position: absolutemargin: autoで中央に設置する
    • width: 0height: 0にしておく
    • backgroundはページの背景色に合わせる
    • animationでアニメーションを指定(アニメーション名|時間|速度|forwards)
    • animation-delayで任意の遅延時間を設定
  • 円が拡大するアニメーションを作成
    • widthheightを大きくしていく
    • 99%時点まではborder-radius: 50%で正円にしておくと良い感じ
    • 画面幅を余裕で超えるぐらい大きな円にするのもアリ
    • サンプルは小さい円で少しだけ(10~80%まで)停止させています

あくまでフェードアウトを使った疑似的な出現になります。

応用CSS

四角が広がってコンテンツが出現する

角丸(border-radius)を取っ払って、無骨な四角にしたもの。

See the Pen 四角が広がってコンテンツが出現するページ遷移アニメーション by チータツ (@cheese_fuji) on CodePen.

Rerunで再アニメーション↑

円が小さくなってコンテンツが出現する

コレジャナイ感はありますが、逆バージョンです。
.maskをページの背景色(#fff)に合わせて、小さくなっていく円.circleをピンク色にしています。

See the Pen 円が小さくなってコンテンツが出現するページ遷移アニメーション by チータツ (@cheese_fuji) on CodePen.

Rerunで再アニメーション↑