This site is mobile accessible. Press the "Tap Here" button to use a larger font-size.


Smartphone icons created by Freepik - Flaticon

  • 14.8 DOM Animations

    Learn to create HTML animations using JavaScript.

    A Basic Web Page

    To demonstrate how to create HTML animations with JavaScript, we will use a simple web page:

    Example

    <!DOCTYPE html>
    <html>
    <body>
    
    <h1>My First JavaScript Animation</h1>
    
    <div id="animation">My animation will go here</div>
    
    </body>
    </html>

    Create an Animation Container

    All animations should be relative to a container element.

    Example

    <div id ="container">
      <div id ="animate">My animation will go here</div>
    </div>

    Style the Elements

    • The container element should be created with style = "position: relative".
    • The animation element should be created with style = "position: absolute".
    Example 1: My first JS animation part 1
    #container {
      width: 400px;
      height: 400px;
      position: relative;
      background: yellow;
    }
    #animate {
      width: 50px;
      height: 50px;
      position: absolute;
      background: red;
    }

    Animation Code

    • JavaScript animations are done by programming gradual changes in an element's style.
    • The changes are called by a timer. When the timer interval is short, the animation looks continuous.
    • The basic code is:

    Example

    var id = setInterval(frame, 5);
    
    function frame() {
      if (/* test for finished */) {
        clearInterval(id);
      } else {
        /* code to change the element style */ 
      }
    }

    Create the Animation Using JavaScript

    Example 2: My first JS animation part 2
    function myMove() {
      var elem = document.getElementById("animate");
      var pos = 0;
      var id = setInterval(frame, 5);
      function frame() {
        if (pos == 350) {
          clearInterval(id);
        } else {
          pos++;
          elem.style.top = pos + 'px';
          elem.style.left = pos + 'px';
        }
      }
    }
    Navigate this module

    Eventually the navigation links, above, will be replaced by these << (previous) and >> (next) buttons below.



    JavaScript icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon