Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

376
Vistas
¿Cómo detectar si dos divs se tocan con jquery?

Solo estoy desarrollando un juego de globos simple con dos divs. El problema es que no puedo activar una función cuando los dos divs se tocan.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Está buscando detección de colisión de cuadro delimitador. Si desea generar un evento, debe probar repetidamente, pero sería mejor ejecutar la función sobre todos los objetos de su juego desde su ciclo de juego. El sandbox está en http://jsfiddle.net/nGRwt/7/

 function collision($div1, $div2) { var x1 = $div1.offset().left; var y1 = $div1.offset().top; var h1 = $div1.outerHeight(true); var w1 = $div1.outerWidth(true); var b1 = y1 + h1; var r1 = x1 + w1; var x2 = $div2.offset().left; var y2 = $div2.offset().top; var h2 = $div2.outerHeight(true); var w2 = $div2.outerWidth(true); var b2 = y2 + h2; var r2 = x2 + w2; if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false; return true; }
over 4 years ago · Santiago Trujillo Denunciar

0

Puede probar jquery-collision más jquery-ui-draggable-collision . Divulgación completa: acabo de escribir y publicar estos en sourceforge.

El primero permite esto:

 var hit_list = $("#collider").collision(".obstacle");

que es la lista de todos los "obstáculos" que se superponen a "#collider".

La segunda permite:

 $("#collider").draggable( { obstacle: ".obstacle" } );

Lo que le brinda (entre otras cosas), un evento de "colisión" al que vincularse:

 $("#collider").bind( "collision", function(event,ui){...} );

E incluso puedes configurar:

 $("#collider").draggable( { obstacle: ".obstacle", preventCollision: true } );

para evitar que "#collider" se superponga a cualquier "obstáculo" mientras se arrastra.

over 4 years ago · Santiago Trujillo Denunciar

0

en Javascript Nativo

 var is_colliding = function(div1, div2) { var d1_height = div1.offsetHeight; var d1_width = div1.offsetWidth; var d1_distance_from_top = div1.offsetTop + d1_height; var d1_distance_from_left = div1.offsetLeft + d1_width; var d2_height = div2.offsetHeight; var d2_width = div2.offsetWidth; var d2_distance_from_top = div2.offsetTop + d2_height; var d2_distance_from_left = div2.offsetLeft + d2_width; var not_colliding = d1_distance_from_top < div2.offsetTop || div1.offsetTop > d2_distance_from_top || d1_distance_from_left < div2.offsetTop || div1.offsetLeft > d2_distance_from_left; return !not_colliding; };
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda