J'ai un certain nombre d'éléments que j'ai besoin d'ajouter à une page en utilisant javascript avec des données tirées du serveur avec leurs informations de position. Je veux les arranger pour qu'il n'y ait pas de chevauchement. Par exemple, element 5
serait déplacé à l'endroit où se trouve la boîte verte fine, de sorte qu'elle ne chevauche pas element 3
.Comment utiliser un arbre pour organiser des éléments HTML afin de réduire le nombre de vérifications de chevauchement?
J'ai réussi à créer une fonction qui décide si deux boîtes se chevauchent. Par exemple, si je cours overlaps($('#element5')[0],$('#element3')[0])
, il retournera true
. Cependant, avec cette fonction, je devrais parcourir chaque élément et le comparer avec tous les autres éléments. Donc, pour 50 éléments, je devrais faire exécuter la fonction overlays
1275 fois, ce qui prendrait beaucoup de temps à charger. J'ai décidé que je ferais mieux de créer un arbre pour organiser les éléments en premier afin que je puisse facilement déterminer les 2 éléments dont j'aurais besoin pour exécuter la fonction de superposition, réduisant considérablement le nombre d'exécutions de la fonction de superposition. Cependant, je suis extrêmement confus sur la façon dont cela fonctionnerait. Comment pourrais-je les organiser de sorte que je n'aurais qu'à exécuter la fonction avec un petit nombre? Deux des limites de l'arbre ne se chevaucheraient-elles pas et rendraient cette technique redondante? Quelle serait la meilleure façon de faire cela?