その他

画面に雪を降らせるアニメーション

CSSだけで簡単! 画面に本格的な雪を降らせるアニメーション

See the Pen Untitled by チータツ (@cheese_fuji) on CodePen.

画面に雪を降らせるCSSです。HTMLとCSSのみで構成されているので、jQueryなどは必要ありません。

クリスマスなどに使用すると雰囲気が出ていいのですが、じっくり読ませたいページに適用するのはやめておきましょう。

CSSの解説

div 要素の白い丸を数パターン作り、box-shadow でたくさん複製。1つ辺りの雪玉の位置は、横0~100vw・高さ±250pxの範囲内で散りばめています。

  • 雪玉共通 .snows div
    • position: fixedで画面固定表示
    • top: -250pxで初期表示位置に余裕を持たせる( leftは0 )
    • border-radius: 50%で正円に
    • background: #fffで白色に
    • opacity: 0.9で少しだけ透明に
  • 各雪玉の調整 .snows div:nth-child()
    • width と height を指定して任意の大きさに
    • box-shadowで複製をランダムにたくさん作る(box-shadow: 横オフセット 縦オフセット 色
      • 位置(オフセット)は±250pxで治まる範囲に
    • filter: blur()でぼかしを入れる
    • animation: アニメーション名 時間 linear infiniteを指定
    • animation-delay で任意の遅延時間を設定
    • 雪玉のぼかしと落下速度は玉の大きさに比例させると良い感じ
  • 落下アニメーションを作成
    • 0%時点で初期位置top: -250px
    • 100%時点で雪玉の隠れる位置top: calc(100% + 250px)

吹雪verを作ろうと思いましたが、面倒なだけで需要0なのでやめました