Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

181
Views
¿Cómo puedo mover div a un espacio vacío SOLAMENTE cuando son vecinos visuales en la pantalla flexible usando js o jquery?

Estoy trabajando en un juego simple de ordenar números con Js
Usé display:flex para colocar todos los DIV internos dentro del contenedor DIV
Y quiero que cuando haga clic en un DIV específico, se mueva al espacio vacío SOLO cuando ese DIV y el espacio vacío sean visualmente vecinos
Quiero decir que comparten cualquier borde, ya sea arriba o abajo, a la izquierda o a la derecha.
como se muestra en esta imagen:
Imagen

En este caso (en la imagen de arriba) quiero que cuando alguien haga clic en el div número 6, se mueva hacia abajo al espacio vacío y deje el espacio vacío en su lugar original donde puedo mover más divs si son visualmente vecinos.
como esta imagen:
segunda imagen después de 1 movimiento
intento esto

 $('.tile').click(function (event) { $(this).animate({top:'100'}); });

pero ese código mueve el div solo ABAJO

Quiero obtener un código que pueda manejar todas las direcciones después de cada movimiento

¿Cómo puedo lograr esto con js o jquery?

mi codigo completo

 $(document).ready(function(){ $('.tile').click(function (event) { $(this).animate({top:'100'}); //var div = $(event.target).closest('.tile'); //div.next('.tile').after(div).animate({top:'100'}); }); });
 .flexDiv{ display:flex; flex-wrap: wrap; width:310px; border:1px solid black; } .tile{ position:relative; background:#08088A; text-align:center; width:29%; margin:1px; font-size:75px; font-weight:bold; color:#fff; padding:5px; } .white{ background:#fff; }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <div class="flexDiv"> <div class="tile">1</div> <div class="tile">2</div> <div class="tile">3</div> <div class="tile">4</div> <div class="tile">5</div> <div class="tile">6</div> <div class="tile">7</div> <div class="tile">8</div> </div>
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!