CSSのease-inを使ってスロースタートのアニメーションを設定する方法
CSSでアニメーションに「ゆっくり始まる」動き(スロースタート)を加えたい場合は、animation-timing-function プロパティに ease-in を指定します。ease-in は、アニメーションの開始時に速度が遅く、進行に合わせて徐々に加速していくイージング関数です。
ease-inの指定例
次のサンプルでは、黄色いボックスが左から右へ移動するアニメーションに対して animation-timing-function: ease-in; を適用しています。ボックスは最初ゆっくり動き出し、次第に速くなりながら移動します。
サンプルコード
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 150px;
height: 200px;
position: relative;
background-color: yellow;
animation-name: myanim;
animation-duration: 2s;
animation-direction: alternate-reverse;
animation-iteration-count: 3;
}
@keyframes myanim {
from {left: 100px;}
to {left: 200px;}
}
#demo {animation-timing-function: ease-in;}
</style>
</head>
<body>
<div id = "demo">ease-in effect</div>
</body>
</html>
コードのポイント解説
- @keyframes myanim:アニメーションの開始時点(from)と終了時点(to)での
leftの位置を定義しています。 - animation-duration: 2s:1回のアニメーションにかかる時間を2秒に設定しています。
- animation-iteration-count: 3:アニメーションを3回繰り返す設定です。
- animation-direction: alternate-reverse:逆方向から再生し、往復するように動かします。
- #demo { animation-timing-function: ease-in; }:IDが「demo」の要素だけにスロースタートの動きを適用しています。
主なanimation-timing-functionの値
ease-in 以外にも、目的に応じてさまざまなタイミング関数を選択できます。
- linear:開始から終了まで一定の速度で変化します。
- ease:ゆっくり始まり、途中で加速し、最後はゆっくり終わる標準的なカーブです。
- ease-in:ゆっくり始まり、終了に向けて加速します(スロースタート)。
- ease-out:速く始まり、終了に向けて減速します。
- ease-in-out:開始と終了の両方がゆっくりになります。
自然な動きや演出効果を出したい場合は、これらの値を組み合わせて試し、目的の印象に合うものを選ぶのがおすすめです。
-
CSSでアニメーションの終わりをゆっくりにする方法|ease-outの使い方を解説
CSSでアニメーションの終盤だけ速度を落としたい場合には、animation-timing-functionプロパティにease-outを指定します。ease-outは「開始時は速く、終了に向かって徐々に減速する」イージングカーブで、要素が滑らかに停止するような自然な動きを実現できます。ease-outを使ったアニメーションの基本構文以下のように、対象の要素に対してanimation-timing-function: ease-out;を設定するだけで、スローエンド(緩やかな終わり)のアニメーションが適用されます。selector { animation-timing-function:
-
CSSで最初から最後まで一定速度のアニメーションを設定する方法
CSSでアニメーションを作成すると、デフォルトでは開始時に加速し、終了時に減速する「イージング」が自動的に適用されます。しかし、ローディングスピナーやプログレスバーのように、最初から最後までまったく同じ速度で動かしたいケースもあります。 そのような場合に活用するのが、animation-timing-functionプロパティです。このプロパティにlinear(リニア)という値を指定すると、アニメーション全体を通じて一定の速度が保たれます。 animation-timing-function: linear とは linearは、アニメーションの進行速度を一定に保つための値です。加速も減速もな