CSS Transitions and Animations
There are a lot of cool effects and animations you can do with CSS, and it's actually not too difficult once you know how to do it. For a simple example, try hovering over these boxes:
The CSS code for this is:
.hover-box{
display: inline-block;
scale: 1;
/* This part sets up the transition */
transition: 2s ease;
transition-property: scale;
}
.hover-box:hover{
scale: 2;
}
The transition-property property sets which
property the transition effects. In this case, it is set
to scale, so whenever the scale
property changes, it animates between the old and new values
for the duration specified in transition, 2
seconds in this case.
The first example used a psuedo-class, but this also works if you add or remove classes in JavaScript:
var btn1 = document.getElementById("btn1")
var box1 = document.getElementById("box1")
btn1.addEventListener("click", function(){
if (box1.classList.contains("right")){
box1.classList.remove("right")
} else {
box1.classList.add("right")
}
})
You can also make more advanced animations by typing something like this:
@keyframes coolAnimation {
from{
rotate: -10deg;
}
to{
rotate: 20deg;
}
}
#box2{
animation-name: coolAnimation;
animation-duration: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
You can type all sorts of properties into the
from and to blocks, just like
any other rule. The properties on #box2 set
things about how the animation should play, such as the
duration. The animation-name property
should be the same name as when you defined the animation,
I used coolAnimation for this example.