Chapter 7: Animated Robot
The starting point for the Animated Robot project from Chapter 7 of JavaScript for Kids For Dummies by Chris Minnick and Eva Holland.
by Kanatantsin
HTML
<div id="robot">
<div id="head">
<div class="eye" id="righteye"></div>
<div class="eye" id="lefteye"></div>
<div id="nose"></div>
<div id="mouth"></div>
</div>
<div class="arm" id="rightarm"></div>
<div id="body">
<p>I <3 JS!</p>
</div>
<div class="arm" id="leftarm"></div>
</div>
CSS
body {
font-family: "Comic Sans MS", cursive, sans-serif;
}
p {
font-size: 3em;
}
.eye {
background-color: blue;
width: 30%;
height: 30%;
border-radius: 50%;
}
.arm {
background-color: #cacaca;
position: absolute;
top: 35%;
width: 5%;
height: 40%;
}
#head {
width: 30%;
height: 30%;
border-radius: 15%;
background-color: #dadada;
position: absolute;
left: 33%;
top: 5%;
}
#righteye {
position: absolute;
left: 20%;
top: 20%;
}
#lefteye {
position: absolute;
left: 60%;
top: 20%;
}
#nose {
position: absolute;
left: 45%;
top: 50%;
width: 10%;
height: 10%;
background-color: black;
}
#mouth {
position: absolute;
width: 65%;
height: 15%;
left: 20%;
top: 70%;
background-color: red;
}
#body {
position: absolute;
left: 25%;
top: 35%;
width: 45%;
height: 55%;
background-color: #dadada;
text-align: center;
padding-top: 30px;
}
#rightarm {
position: absolute;
left: 20%;
}
#leftarm {
position: absolute;
left: 70%;
width: 25%;
height: 10%;
}
JavaScript
var rightEye = document.getElementById("righteye");
var leftEye = document.getElementById("lefteye");
var leftArm = document.getElementById("leftarm");
rightEye.addEventListener("click", moveUpDown);
leftEye.addEventListener("click", moveUpDown);
leftArm.addEventListener("click", moveRightLeft);
function moveUpDown(e) {
var robotPart = e.target;
var top = 0;
var id = setInterval(frame, 10)
function frame() {
robotPart.style.top = top + '%';
top++;
if (top === 20) {
clearInterval(id);
}
}
}
function moveRightLeft(e) {
var robotPart = e.target;
var left = 0;
var id = setInterval(frame, 10)
function frame() {
robotPart.style.left = left + '%';
left++;
if (left === 70) {
clearInterval(id);
}
}
}