Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html>
  3. <style>
  4. #myContainer {
  5.   width: 400px;
  6.   height: 400px;
  7.   position: relative;
  8.   background: black;
  9. }
  10. #myAnimation {
  11.   width: 50px;
  12.   height: 50px;
  13.   position: absolute;
  14.   background-color: violet;
  15. }
  16. </style>
  17. <body>
  18.  
  19. <p>
  20. <button onclick="runAnimation()">Click Me</button>
  21. </p>
  22.  
  23. <div id ="myContainer">
  24. <div id ="myAnimation"></div>
  25. </div>
  26. <script>
  27.  
  28. var intervalId = 0;
  29. const elem = document.getElementById("myAnimation");
  30. var currentMoveIndex = 0;
  31. const moves = [
  32. {x: 350, y: 350},
  33. {x: 0, y: 350},
  34. {x: 350, y: 0},
  35. {x: 150, y: 150},
  36. {x: 10, y: 260}
  37. ]
  38.  
  39. function moveElement() {   
  40.     var elemX = elem.offsetLeft;
  41.     var elemY = elem.offsetTop;
  42.     var currentMove = moves[currentMoveIndex];
  43.        
  44.     if (moves.length === currentMoveIndex) {
  45.         clearInterval(intervalId);
  46.         return;
  47.     }
  48.     else if (currentMove.x === elemX && currentMove.y === elemY) {
  49.         currentMoveIndex++;
  50.     }
  51.     else {     
  52.         var xOffset = 0;
  53.         if (currentMove.x > elemX)  {
  54.             xOffset = 1;
  55.         }
  56.         else if (currentMove.x < elemX) {
  57.             xOffset = -1;
  58.         }
  59.        
  60.         var yOffset = 0;
  61.         if (currentMove.y > elemY)  {
  62.             yOffset = 1;
  63.         }
  64.         else if (currentMove.y < elemY) {
  65.             yOffset = -1;
  66.         }
  67.        
  68.         elem.style.left = (elemX + xOffset) + 'px';
  69.         elem.style.top = (elemY + yOffset) + 'px';
  70.     }
  71. }
  72.  
  73. function runAnimation() {
  74.     intervalId = setInterval(moveElement, 5);
  75. }
  76.  
  77. </script>
  78. </body>
  79. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement