[Javascript] Gestion de collision dynamique

Hello la zone,

En ce moment, je tente de gérer la détection de collision d’un pacquet de div dynamique qui peuvent subir un effet drag & drop sur une ligne fixe. Mon problème est que mon algo ne semble pas bon, or je ne vois pas vraiment le problème.

function collisionDetectionItems(leftPos) { var items = new Array(); var item_leftpos; var item_rightpos; // Détection de collision // récupérer tous les items (relevé coordonnée X et Y ) items = getElementsByClass("floatingWindow", null, null); for(var i = 0; i < items.length; i++) { item_leftpos = items[i].style.left.replace('px', '')/1; item_rightpos = item_leftpos + items[i].offsetWidth; // Collision gauche (déplacement d'un item vers la gauche) //alert("ZONE : " + activeFloatingWindow.title); if(leftPos < item_rightpos && activeFloatingWindow.title == items[i].title && item_leftpos < leftPos ) { alert("items LeftPos : " + item_leftpos + " activeFloatingWindow leftPos " + leftPos); leftPos = item_rightpos; } } return leftPos; }

Ma fonction va relever tout les éléments ayant comme class “floating window” qui correspondent à mes fenetres. Du coup, je récupère aussi ma fenetre active qui va subir le drag and drop. Le problème qui se pose c’est que quelque soit la position de ma fenetre active (qu’il y ait collision ou non graphiquement avec une autre fenetre de même type), la condition de vérification n’est toujours pas valide.
leftPos correspond à la position gauche de ma fenetre active.

Ce que je veux moi, c’est détecter la collision entre DIV (fenetres) et corriger sa position automatiquement sans faire apparaitre un quelconque message d’alerte. Néanmoin, ma fonction n’est pas complète, elle ne gère pas les collision du coté droite de la fenetre active. Donc si la position de la bordure droite passe dans une fenetre non active, il n’y a rien qui se passe pour le moment.

Ai je fais un truc d’incorrect ?

EDIT : Bon finalement ca à l’air de fonctionner, j’avais pas percuté que j’avais mis en commentaire l’appel à la fonction. Maintenant mon problème, c’est que la fenetre active considère lui même qu’il est une autre fenetre non active au moment du drag. Du coup, j’ai des déplacement bizarre qui se fait. Y a til une propriété ou une quelconque méthode afin de distinguer d’une fenetre active d’une non active ?