Just like the difference between CSS Transitions and Animations is about control, so is the difference between CSS and JavaScript. Although more demanding to write, using JavaScript allows you to create more complicated animations. It can do things that CSS simply isn’t capable of.
Creating animations with JavaScript is, by comparison, more complex than writing CSS transitions or animations, but it typically provides developers significantly more power.- Paul Lewis and Sam Thurgood, Google
JavaScript also allows you to trigger animations with user actions, like clicking. This kind of interaction can be very useful for giving users feedback to show success on a certain task.
It also lets you build beautiful, complex animations that are more like works of art than pieces of code. These may be fun to look at and intriguing to dream up, but remember to keep your animation focused on a purpose. This is animation with destination, not MOMA.
Need to brush up on your JavaScript? There are plenty of resources available from websites like W3 Schools and the UGA New Media Institute.
And here’s a (not-so) secret: there are tons of JavaScript animation libraries out there to help you incorporate some of that complexity without getting too down and dirty in the code.
One helpful thing JavaScript can do is have an animation that triggers with a click. You can still build the animation in a simpler format like a CSS Transition or Animation, but a few lines of code can help take it up a notch.
To take a peek at how little code is involved, check out this Codepen from TheTallWeeks.
See the Pen Trigger CSS3 animation on click by thetallweeks (@thetallweeks) on CodePen.
Animating on click is nifty, sure, but how can it be useful? One great example is user feedback. Here's an example we made to demonstrate how an interaction from a user can elicit feedback:
See the Pen on click by Kendall (@kalake96) on CodePen.
Again, if you take a look at the code here, you can see how JavaScript isn't too scary at all. The core of these two animations is still the same CSS that we have been working on so far.
According to UGA New Media Institute, the easiest way to animate with JavaScript is to start with the library jquery. We aren’t trying to reinvent the wheel, here, >so take a look at their lesson to learn more.
One of the most popular and powerful animation libraries available is Anime.js. This library provides tons of getting-started materials including elaborate documentation and a range of examples. Check back soon on flUX for a deeper dive into the wonders of Anime.js.
Here’s one example that shows the intricate and beautiful animations you can create.
See the Pen Modern retro - IBM THINK by Mikael Ainalem (@ainalem) on CodePen.
Of course, this just barely skims the surface of only three libraries. There are a practically endless number of options out there, so get out there and explore! In flUX's next update, we will cast a wider net to learn more about the world of animation libraries.
Time to put things into action. Here are a couple of ideas for how you can use your new skills to get them to stick: