How to animate an image in css

To animate an image in CSS, you can use the @keyframes rule to define a set of CSS styles that will be gradually applied to the image over a specified period of time. Here’s an example of how to animate an image using CSS:

/* Define the animation keyframes */
@keyframes spin {
from {
transform: rotate(0deg);
to {
transform: rotate(360deg);
}/* Apply the animation to the image */
img {
animation-name: spin;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;

In this example, we first define the @keyframes rule with the name “spin” and specify two keyframes: “from” and “to”. The “from” keyframe sets the initial rotation of the image to 0 degrees, while the “to” keyframe sets the final rotation to 360 degrees. This creates a full rotation animation.

We then apply the “spin” animation to the image using the animation-name, animation-duration, animation-timing-function, and animation-iteration-count properties. The animation-name property specifies the name of the animation (in this case, “spin”), while the animation-duration property specifies the duration of the animation in seconds (in this case, 2 seconds). The animation-timing-function property specifies the timing function for the animation (in this case, “linear”), and the animation-iteration-count property specifies the number of times the animation should repeat (in this case, “infinite”).

To animate an image in CSS using transitions, you can use the transition property to specify the CSS properties to animate and the duration and timing of the animation. Here’s an example of how to animate an image using transitions:

/* Apply the transition to the image */
img {
transition: transform 2s linear;

/* On hover, apply the transformation to the image */
img:hover {
transform: rotate(360deg);

In this example, we apply the transition property to the image, specifying the transform property to animate, a duration of 2s, and a linear timing function. This tells the browser to animate any changes to the transform property over a period of 2 seconds with a linear timing function.

We then specify a :hover pseudo-class for the image and apply a transform: rotate(360deg) style to it. When the user hovers over the image, the transform will be gradually animated over the course of 2 seconds, resulting in a smooth rotation animation.

Note that using transitions can be less flexible than using keyframe animations, as transitions only allow for a single transition between two states. If you need more fine-grained control over the animation, or need to create more complex animations, you may want to use keyframe animations instead.