ページ遷移 (画面遷移)

二段階で背景がスライドするページ遷移

二段階で背景がスライドするページ遷移アニメーションのCSS

See the Pen 背景が2段階で変わるページ遷移アニメーション by チータツ (@cheese_fuji) on CodePen.

Rerunで再アニメーション↑

デモページで見る

CSSの解説

アニメーションさせる対象が2つになっただけで、基本的な仕組みはシャッターアニメーションと同じです。

サンプルでは疑似要素body::before, body::afterの2つを使用しています。bodyの疑似要素を使いたくない人は、div要素などを代わりに作成してCSSを適用させてください。

  • 画面を覆う背景を2つ作成する
    • position: fixedで固定表示
    • width: 100vwheight: 100vhで画面サイズに合わせる
    • transform-originでアニメーションの向きを決める(サンプルは左→右)
  • 前面の背景の調整
    • z-indexを高い数値にして上に重ねる
    • animationを指定(アニメーション名、時間、forwards)
    • animation-delayでアニメーション開始の遅延時間を設定
  • 背面の背景を調整
    • z-index前面の背景より1つ小さい値に
    • animationを指定(時間を少し変えてみるといい感じかも?)
    • animation-delayを前面背景のアニメーション後に調整(前面の遅延時間+前面のアニメーション時間 より高い数値に)
  • @keyframesで背景が動くアニメーションを作成
    • 0%:transform: scaleX(1) で幅は最大値
    • 100%:transform: scaleX(0) で幅を0に、visibility: hiddenで非表示に

幅や座標を間違えない限りはvisibility :hiddenがなくてもちゃんと画面から消えますが、モニター外に存在するというのが気持ち悪いので一応書いています。

9行目 transform: origin をleftにすれば、左へ流れるアニメーションに変わります。

応用CSS

縦にスライドする

先ほどのサンプルとは違い、縦方向に背景がスライドします。transform-origin: topで起点を上に変更し、scaleX()からscaleY()によるアニメーションへと変更しています。

下方向にスライドさせたい場合は、transform-origin: bottomへと変更してください。

See the Pen 2段階で背景がスライドするオープニングアニメーション(縦) by チータツ (@cheese_fuji) on CodePen.