ページ遷移 (画面遷移)

カーテンのように背景が左右に開くページ遷移

CSSで作る! カーテンのように左右に開くページ遷移アニメーション

See the Pen カーテンのように左右に開くページ遷移アニメーション by チータツ (@cheese_fuji) on CodePen.

Rerunで再アニメーション↑

デモページで見る

CSSの解説

画面を2分割して左右それぞれをカバーする要素を用意。2つともにアニメーションで中心から画面端まで縮めることで、カーテンが開いたかのような動きが実現します。

  • @keyframesでアニメーションを作成
    • 0%:幅width: 50vwで画面全体を覆う
    • 100%:width: 0で画面端まで縮んで、visibility: hidden で非表示に
  • アニメーション用の疑似要素body::beforebody::afterを作成する
    • position: fixedで固定表示
    • width: 50vwheight: 100vhで画面を左右半分ずつカバー
    • top:0で画面に高さをぴったり合わせる
    • z-index: 999を指定して、他の固定表示要素よりも上に表示する
    • backgroundで色付け
    • animationを指定(アニメーション名、時間、forwards
    • 好みで遅延時間animation-delayを設定
  • body::beforeは左に展開させたいのでleft: 0
  • body::afterは右に展開させたいのでright: 0

応用CSS

カーテン+フェードアウト

@keyframesopacityを使ったフェードアウトを追加すると、より自然なページ遷移になります。

アニメーションの途中50%までopacity:1にしておき、終わり際にフェードアウトが始まるようにしています。

See the Pen カーテンのようなページ遷移アニメーション+opacity by チータツ (@cheese_fuji) on CodePen.

Rerunで再アニメーション↑

デモページで見る

劇場のカーテン風

段階的に左右に開くようにして、手動っぽさと重さを表現。ついでに上部にborderで金の装飾をあしらっています。

何か分からない?
そうですか...

See the Pen 劇場のカーテンのようなページ遷移アニメーション by チータツ (@cheese_fuji) on CodePen.

Rerunで再アニメーション↑

デモページで見る