20
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CSSAdvent Calendar 2023

Day 2

【CSS】Scroll-driven AnimationsとCSSの進化

Last updated at Posted at 2023-12-01

はじめに

Slide 1.jpg
この記事は、2023年12月1日に開催されたMeguro.css #9で発表した内容です。

内容

導入

Slide 2.jpg
こんにちは、私はQiita株式会社の出口 裕貴です。

普段は、QiitaのPdM 兼 デザイングループのマネージャーをしています。
私は、デザイン, フロントエンドに関連する情報を中心に発信しているので、よかったらXのフォローしていただけると嬉しいです。


Slide 6.jpg
早速ですが、みなさん Scroll-driven Animations(スクロール駆動アニメーション) はご存知ですか?

スクロール駆動アニメーションは、スクロール駆動アニメーションは、CSSでスクロールに合わせて要素をアニメーションさせることができる機能です。

私が、スクロール駆動アニメーションをはじめて触った時に、CSSの進化を感じ、
今日までに私はQiitaに3記事、スクロール駆動アニメーション についての記事を投稿しています。

そんな私が、スクロール駆動アニメーションについて、話そうと思います。

話すこと

Slide 7.jpg
今日の発表では、スクロール駆動アニメーションの紹介と実装方法について話します。

今日の話を聞いて、皆さんが、スクロール駆動アニメーションについて理解して、興味を持っていただけると嬉しいです。

スクロール駆動アニメーションについて、

Slide 9.jpg

スクロール駆動アニメーションは、
Scroll Progress TimelineView Progress Timeline
2種類アニメーションを管理する方法があります。

これから、それぞれについて説明していこうと思います。

Scroll Progress Timeline

Slide 10.jpg
Scroll Progress Timelineは、スクロールできるコンテナー全体の位置によってアニメーションを管理する方法です。


Slide 11.jpg
Scroll Progress Timelineで、スクロール駆動アニメーションを実装するには、
アニメーションさせたい要素に

  • animation-timeline: scroll();
    • コンテナー全体をスクロールの基準にする
    • scroll(スクロール要素 スクロール方向)
  • @keyframes anim { ... }
    • アニメーションを定義する
  • animation: anim linear;
    • アニメーションとイージングを指定する

これらを記載することで実装できます。


See the Pen meguro.css - sample 1 by でぐぅー | Qiita (@sp_degu) on CodePen.

スタイルを `scrollY`・`scrollX`を切り替えると、それぞれの挙動を確認できます!

View Progress Timeline

Slide 13.jpg
View Progress Timelineは、スクロールできるコンテナーの見えるビューポートを基準にアニメーションを管理する方法です。


Slide 14.jpg
View Progress Timelineで、スクロール駆動アニメーションを実装するには、
アニメーションさせたい要素に

  • animation-timeline: view();
    • ビューポートをスクロールの基準にする
    • view(スクロール方向 inset値)
  • @keyframes anim { ... }
    • アニメーションを定義する
  • animation: anim linear;
    • アニメーションとイージングを指定する
  • animation-range: cover 0% cover 100%;
    • アニメーションするの範囲を指定する

これらを記載することで実装できます。


See the Pen View Progress Timeline by でぐぅー | Qiita (@sp_degu) on CodePen.

スタイルを `cover`・`entry`・`exit`・`entry-crossing`・`exit-crossing`・`contain`を切り替えると、それぞれの挙動を確認できます!

サンプル

Slide 16.jpg
これらのスクロール駆動アニメーションを使いこなすと、今まで、JavaScript等で使っていたような表現がCSSだけで、簡単になります!


See the Pen Scroll Driven Animations - parallax by でぐぅー | Qiita (@sp_degu) on CodePen.

パララックスも簡単に作れます!

See the Pen meguro.css - sample 2 by でぐぅー | Qiita (@sp_degu) on CodePen.

横スクロールしながら、スタイルを変えることも簡単にできるようになります!

対応ブラウザ

Slide 19.jpg
スクロール駆動アニメーションは、まだまだ対応しているブラウザは少ないので、確認の上お使いください。

まとめ

Slide 20.jpg

今日は、スクロール駆動アニメーションについて紹介しました。
まだまだ、使えるブラウザが少ないですが、これからのCSSが変わってくる大きなアップデートになると思います。

最後に、スクロール駆動アニメーションがリリースされる日を気長に待ちましょう!


最後まで読んでくださってありがとうございます!

普段はデザインやフロントエンドを中心にQiitaに記事を投稿しているので、ぜひQiitaのフォローとX(Twitter)のフォローをお願いします。

20
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?