Animated Movement

HTML

<div id="world-map">

      <div class="start">
        <div id="main-char"></div>
      </div>

      <div style="margin-left: 30px;" class="node node1 unlocked"></div>
      <div class="node node2 unlocked"></div>
      <div class="node node3 unlocked"></div>
      <div class="node node4 unlocked"></div>
      <div class="node node5 unlocked"></div>

</div>

CSS

#world-map {
  background: #222;
  min-height: 1500px;
  position: relative;
  padding: 30px 0 0 0;
}

#main-char {
  width: 30px;
  height: 30px;
    border-radius: 100%;
  background: red;
  margin: 0 auto 0 auto;
  position: relative;
  top: 0;
}

.start {
  height: 100px;
  display: block;
}

.node {
  width: 50px;
  height: 50px;
  border-radius: 100%;
  background: blue;
  box-sizing: padding-box;
  margin: 20px auto 0 auto;
  display: block;
}

.node1 {
  top: 100px;
}

.node2 {
  top: 400px;
}

.node3 {
  top: 700px;
}

.node4 {
  top: 1000px;
}

.node5 {
  top: 1300px;
}

.activeNode {
  background: #aaa;
}

JavaScript

$(document).ready(function () {

  $(".node").click(function() {

    if ($(this).hasClass('unlocked')) {
      $("#main-char").animate( {
        top: $(this).offset().top -27
      }, 1000, function() {
      });

      $(".node").removeClass("activeNode"); //Removes all instances of activeNode
      $(this).addClass('activeNode') //Adds activeNode class to the node clicked on
    }
    else {
      console.log("Sorry, broken");
    }
  });

});