ページ遷移 (画面遷移)

シャッターのように背景が動くページ遷移

CSSで作る! シャッターのように背景が動くページ遷移アニメーション

See the Pen 画面遷移時のシャッターアップアニメーション by チータツ (@cheese_fuji) on CodePen.

Rerunをクリックで再度アニメーション↑

上に開くようなシャッターアップのアニメーションです。(カメラのシャッターではありません)

CSSの解説

基本的な仕組みは単純。画面と同じサイズのマスクを用意して、transform: scale()で縮小させるだけです。

  • @keyframesでアニメーションを作成
    • 0%で高さ最大scaleY(1)
    • 100%で縮んで消えるscaleY(0)
  • 画面を覆うための疑似要素body:afterを作成する
    • position: fixedで固定表示
    • width: 100vwheight: 100vhで画面と同じサイズにする
    • left: 0top:0で画面にぴったり合わせる
    • z-index: 999を指定して、他の固定表示要素よりも上に表示する
    • backgroundで色付け
    • animationを指定(時間、アニメーション名、forwards
    • 好みで遅延時間animation-delayを設定
    • transform-origin: top変化の始点を上に設定

応用CSS

このアニメーションはtransform: scale()を使った拡大・縮小で作られているため、アニメーションの始点を指定するtransform-originを変更するだけで、簡単に向きを変えることが可能です。

シャッターダウン

シャッターアップとは逆に、背景が下に落ちていくアニメーションです。

下方向へ動かすためtransform-origin: bottomを指定しています。

See the Pen シャッターダウンアニメーション by チータツ (@cheese_fuji) on CodePen.

シャッターレフト

もはやシャッターなのかは疑わしいですが、背景が横に動くページ遷移用アニメーションです。

横方向への縮小にするため@keyframes内をscaleY()からscaleX()へ変更。transform-origin: leftで左方向に動かしています。横に長いPC画面に実装する場合は、アニメーション時間を長めにするといいかも?

See the Pen シャッターレフト by チータツ (@cheese_fuji) on CodePen.

シャッターライト

シャッターレフトとは逆に、transform-origin: rightを指定して右方向に動かしています。

See the Pen シャッターライトのアニメーション by チータツ (@cheese_fuji) on CodePen.

ちなみに、このシャッターレフトとシャッターライトを合成すると、カーテンのようなページ遷移が作れます。