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 &lt;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");
rightEye.addEventListener("click", moveUpdown);

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);
    }
  }
}