Jumping Frog Animation and Cookie Grabber Game
Learn to implement animation by making a jumping frog, and then implement a cookie grabber game.
We'll cover the following...
Animation
CSS provides a plethora of ways to animate elements using various transformations.
JavaScript can be used to make these animations more interactive. Let’s take a look at a simple example to see how it works.
Jumping frog
We’re going to use CSS animation to create a jumping frog effect. To start with, we need an element for our frog to go in the index.html
file:
<div id='frog'>🐸</div>
Now let’s add some to the style.css
file to get the frog into position:
#frog {font-size: 64px;position: absolute;top: 100px;}
This just makes the frog a bit bigger and gives it an absolute position on the page. To use CSS animations, we need to create a @keyframes
rule that describes each frame of the animation. Let’s add the following to the styles.css
file:
@keyframes jump {to {transform: translateY(-100px);}}
This @keyframes
rule only describes the end state of the animation, which is a vertical translation of 100px
upwards (negative values move up in the Y direction). To make it come back down again, we’ll use the animation direction property with a value of alternate
. This plays the animation forwards, then backwards, producing a jumping effect. Let’s add the following lines of code to the #frog
selector’s styles:
animation-name: jump;animation-duration: 700ms;animation-iteration-count: infinite;animation-direction: alternate;
We should see the frog jumping up and down like this:
We can use JavaScript to add some interactivity to this animation by adding an event handler to the frog element that will run the animation when a click
occurs instead of just repeatedly running it. First of all, let’s remove the animation properties from the styles.css
file and add the following code to the index.js
file:
const frog = document.getElementById('frog');document.addEventListener('click', e => frog.style.animation = 'jump 700ms 2 alternate')
This event listener will fire when the user clicks anywhere on the page, and it will call an anonymous arrow function to update the style.animation
property of the frog
element. ...