Chapter 7: Animated Robot

The completed Animated Robot project from Chapter 7 of JavaScript for Kids For Dummies by Chris Minnick and Eva Holland.

by totoromaum

HTML

<!DOCTYPE html>
<head>
	<title>Robot</title>
	<link rel="stylesheet" type="text/css" href="./robot.css">
	<link rel="stylesheet" type="text/css" href=".https://fonts.googleapis.com/css?family=Indie+Flower">
  <script src="./robot.js"></script>

</head>
<body>
	<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 &lt;3 JS!</p></div>
<div class="arm" id="leftarm"></div>
</div>
</body>

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: 32%;
    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: 30%;
    height: 7%;
}

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) // draw every 10ms

  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) // draw every 10ms
  function frame() {
    robotPart.style.left = left + '%';
    left++;
    if (left === 70){
      clearInterval(id);
    }
  }
}