Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

217
Visualizações
How to animate a div in a loop using jquery

I am practicing jquery and trying to animate a div in all direction by pressing the animate button(once). The code works fine for moving the div to right and bottom, but not working for moving the div to left and upwards.

This is the code I have written so far

$(document).ready(function() {
  $("button").click(function() {
    for (var i = 0; i < 4; i++) {
      if (i == 0) {
        $("div").animate({
          left: '250px'
        });
      }
      if (i == 1) {
        $("div").animate({
          top: '250px'
        });
      }
      if (i == 2) {
        $("div").animate({
          left: '-250px'
        });
      }
      if (i == 3) {
        $("div").animate({
          top: '-250px'
        });
      }
    }
  });
});
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" type="text/css" href="style.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <title>Lab 8</title>
</head>

<body>

  <button>Start Animation</button>

  <p>By default, all HTML elements have a static position, and cannot be moved. To manipulate the position, remember to first set the CSS position property of the element to relative, fixed, or absolute!</p>

  <div style="background:#98bf21;height:100px;width:100px;position:absolute;">I am a box</div>

</body>

</html>

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

When you set negative values for the left and top, they move the box out of the viewport, since it is absolutely positioned w.r.t. the body. Set them to 0px in the 3rd and 4th iterations.

You can add a parent with position: relative; to better observe the animation (view in full-page mode):

$(document).ready(function() {
  $("button").click(function() {
    for (var i = 0; i < 4; i++) {
      if (i == 0) {
        $("div").animate({
          left: '250px'
        });
      }
      if (i == 1) {
        $("div").animate({
          top: '250px'
        });
      }
      if (i == 2) {
        $("div").animate({
          left: '0px' // Back to original position left
        });
      }
      if (i == 3) {
        $("div").animate({
          top: '0px' // Back to original position top
        });
      }
    }
  });
});
.parent {
  position: relative;
}

.box {
  position: absolute;
  background: #98bf21;
  height: 100px;
  width: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<button>Start Animation</button>

<p>By default, all HTML elements have a static position, and cannot be moved. To manipulate the position, remember to first set the CSS position property of the element to relative, fixed, or absolute!</p>

<div class="parent">
  <div class="box">I am a box</div>
</div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda