8
votes

Vérifier la collision entre certaines divs

Comment puis-je vérifier la collision entre certaines divs?

Au moment où j'utilise getboundingClientRect () , mais il vérifie chaque div: xxx < / Pré>

Comment puis-je continuer à vérifier des celles spécifiques? Utilisation de ce pour boucle, je peux obtenir les identifiants des divs que je veux vérifier: xxx


2 commentaires

Duplicats possibles: Stackoverflow.com/q/4230029/1048572 , Stackoverflow.com/q/8829421/1048572


Merci, je vais les regarder. Ils entrent en collision à l'aide de JQuery UI Dropper. Je veux détecter si une div a déjà été tombée au même endroit.


3 Réponses :


10
votes

D'accord, j'ai fini par utiliser une version modifiée de cette duplication . La fonction qui fait le travail est la suivante: xxx

et elle est appelée à l'aide de chevauchements (div1, div2); (retourne vrai ou faux).


0 commentaires

0
votes

version javascript pure xxx


0 commentaires

3
votes

Vous pouvez également utiliser le getboundingClientRect () largement pris en charge () code> pour atteindre cet objectif.

Voici la fonction que j'ai développée à l'aide du tutoriel trouvé à l'adresse suivante: P>

Détection de collision 2D em> p>

// a & b are HTMLElements
function overlaps(a, b) {
  const rect1 = a.getBoundingClientRect();
  const rect2 = b.getBoundingClientRect();
  const isInHoriztonalBounds =
    rect1.x < rect2.x + rect2.width && rect1.x + rect1.width > rect2.x;
  const isInVerticalBounds =
    rect1.y < rect2.y + rect2.height && rect1.y + rect1.height > rect2.y;
  const isOverlapping = isInHoriztonalBounds && isInVerticalBounds;
  return isOverlapping;
}


0 commentaires