2012-12-23 5 views
5

Mögliche Duplizieren überlappen:
How to detect if two divs touch with jquery?Erkennen, ob zwei divs

Ich habe viel Zeit damit verbracht, herauszufinden, wie zu erkennen, ob zwei divs überlappen.
versuchte ich das Gamequery-Plugin und verwendet es wie folgt aus:

$("#" + checkform).collision("#" + checkform + "w").each(function(){ 
    alert("Collision"); 
}); 

Würden Sie das Gamequery-Plugin verwenden und/oder wie würden Sie es tun?

Antwort

3

Es gibt bereits eine hier Abfrage eine Antwort mit: How to detect if two divs touch with jquery?

Als Referenz kopiere ich den Code hier:

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; 
    } 
+1

Ich hoffe, Sie haben diese Frage als Duplikat des anderen markiert. –

+0

ja tat so .... – Amar

10

Verwenden getBoundingClientRect() für jedes Element, und sehen, ob sie auf diese Weise überlappen. Keine jQuery benötigt.