今回はCSSだけで作る@keyframesのanimation-timing-functionプロパティを使用したCSSアニメーションを4つご紹介します。
animation-timing-function: linear, ease, ease-in-out, steps()の4つのプロパティを使用してアニメーションの進行度合い(タイミング)をカンタンに指定していきます。
この記事の信頼性(筆者はこんな人)
- 現役Webデザイナーが執筆
- 継続して月収80万円超のフリーランス
- 完全未経験から独学でWeb制作スキルを習得
- Twitterフォロワー数1,700人超(→@twinzvlog_yk)
- Web制作の無料メンター経験多数
- 認定ランサー(ランサーズ最高ランク)
こちらのデザイン・コードはすべて完全オリジナルなのでコピペ大歓迎です。
目次
1. 【@keyframes&animation-timing-function: linearプロパティ】一定に変化
動きは下の画像のような感じになります
実際の動きはこちら
コードはこちら
POINT
- @keyframesを使いアニメーションで実行されるプロパティと開始から終了までの期間をパーセントで指定
- @keyframesでtransform:translate3dでXYZの移動距離を各時点で指定することで立体的に移動するアニメーションを実現(transformの使い方については【transform完全網羅】hoverで動き出す!transformを網羅できるCSSボタンアニメーション16選)
- @keyframesでbox-shadowを各時点で指定することで画像の影が太陽の動きで変化するような動きを実現
- animation-durationでアニメーションにかかる時間を指定
- animation-timing-function: linearでアニメーションの進行の度合いを指定し、linearで開始から終了までを一定に変化(滑らかなアニメーションになる)するよう指定
- animation-direction: normalでアニメーションの再生方向を指定し、normalで指定した方向へのアニメーションを繰り返すよう指定
- animation-iteration-count: infiniteでアニメーションの繰り返し回数をinfiniteに指定して無限に繰り返すアニメーションを実現
- animation-nameを@keyframeのアニメーションを使用したい要素の中で名前を指定
- display:flexでcontainerの中身をど真ん中に設置
2. 【@keyframes&animation-timing-function: easeプロパティ】開始時と終了時は緩やかに変化
動きは下の画像のような感じになります
実際の動きはこちら
コードはこちら
POINT
- @keyframesを使いアニメーションで実行されるプロパティと開始から終了までの期間をパーセントで指定
- @keyframesでtransform:translate3dでXYZの移動距離を各時点で指定することで立体的に移動するアニメーションを実現(transformの使い方については【transform完全網羅】hoverで動き出す!transformを網羅できるCSSボタンアニメーション16選)
- @keyframesでbox-shadowを各時点で指定することで画像の影が太陽の動きで変化するような動きを実現
- animation-durationでアニメーションにかかる時間を指定
- animation-timing-function: easeでアニメーションの進行の度合いを指定し、easeで開始時と終了時は緩やかに変化するよう指定
- animation-direction: normalでアニメーションの再生方向を指定し、normalで指定した方向へのアニメーションを繰り返すよう指定
- animation-iteration-count: infiniteでアニメーションの繰り返し回数をinfiniteに指定して無限に繰り返すアニメーションを実現
- animation-nameを@keyframeのアニメーションを使用したい要素の中で名前を指定
- display:flexでcontainerの中身をど真ん中に設置
3. 【@keyframes&animation-timing-function: ease-in-outプロパティ】開始時と終了時はかなり緩やかに変化
動きは下の画像のような感じになります
実際の動きはこちら
コードはこちら
POINT
- @keyframesを使いアニメーションで実行されるプロパティと開始から終了までの期間をパーセントで指定
- @keyframesでtransform:translate3dでXYZの移動距離を各時点で指定することで立体的に移動するアニメーションを実現(transformの使い方については【transform完全網羅】hoverで動き出す!transformを網羅できるCSSボタンアニメーション16選)
- @keyframesでbox-shadowを各時点で指定することで画像の影が太陽の動きで変化するような動きを実現
- animation-durationでアニメーションにかかる時間を指定
- animation-timing-function: ease-in-outでアニメーションの進行の度合いを指定し、ease-in-outで開始時と終了時にかなり緩やかに変化するよう指定
- animation-direction: normalでアニメーションの再生方向を指定し、normalで指定した方向へのアニメーションを繰り返すよう指定
- animation-iteration-count: infiniteでアニメーションの繰り返し回数をinfiniteに指定して無限に繰り返すアニメーションを実現
- animation-nameを@keyframeのアニメーションを使用したい要素の中で名前を指定
- display:flexでcontainerの中身をど真ん中に設置
4. 【@keyframes&animation-timing-function: stepsプロパティ】指定した数値の段階で変化
動きは下の画像のような感じになります
実際の動きはこちら
コードはこちら
POINT
- @keyframesを使いアニメーションで実行されるプロパティと開始から終了までの期間をパーセントで指定
- @keyframesでtransform:translate3dでXYZの移動距離を各時点で指定することで立体的に移動するアニメーションを実現(transformの使い方については【transform完全網羅】hoverで動き出す!transformを網羅できるCSSボタンアニメーション16選)
- @keyframesでbox-shadowを各時点で指定することで画像の影が太陽の動きで変化するような動きを実現
- animation-durationでアニメーションにかかる時間を指定
- animation-timing-function: steps(10,start)でアニメーションの進行の度合いを指定し、stepsで指定した数の段階で変化するよう指定
- animation-direction: normalでアニメーションの再生方向を指定し、normalで指定した方向へのアニメーションを繰り返すよう指定
- animation-iteration-count: infiniteでアニメーションの繰り返し回数をinfiniteに指定して無限に繰り返すアニメーションを実現
- animation-nameを@keyframeのアニメーションを使用したい要素の中で名前を指定
- display:flexでcontainerの中身をど真ん中に設置
【初心者向け】失敗しないプログラミングTIPS
そもそもWebデザインの基礎がわからない。。
そんなあなたには『Udemy』
未経験からWeb制作で月50万稼げるようになったUdemy教材3選
でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたには『ProEngineer』
完全無料で一人前のエンジニアになれるプログラミングスクール【ProEngineer】