See the Pen 円が広がってコンテンツが出現する by チータツ (@cheese_fuji) on CodePen.
Rerunで再アニメーション↑
CSSの解説
全画面サイズのdiv要素と子要素を設置。
子要素の円がアニメーションで画面いっぱいに拡大したら、要素をまるごとフェードアウト。その下からコンテンツが出現(したように見える)という流れになっています。
- 全画面サイズの要素.maskを用意
- position: fixedで固定表示
- z-indexに高い値を指定して最前面へ
- width: 100vwとheight: 100vhで画面サイズに
- animationでフェードアウトを指定
- 遅延時間animation-delayで、円のアニメーション直後にフェードアウトするよう調整(円のアニメーション+遅延時間 にする)
- @keyframesでフェードアウトアニメーションを作成
- 0%で不透明opacity: 1
- 100%で透明+非表示(opacity: 0 + visibility: hidden)
- 子要素の円.circleを用意
- position: absoluteとmargin: autoで中央に設置する
- width: 0、height: 0にしておく
- backgroundはページの背景色に合わせる
- animationでアニメーションを指定(アニメーション名|時間|速度|forwards)
- animation-delayで任意の遅延時間を設定
- 円が拡大するアニメーションを作成
- widthとheightを大きくしていく
- 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で再アニメーション↑