Har ett knivigt matematiskt problem. Vill med javascript kolla om två olika divar ligger över varandra, dvs om något av lagren överlappar den andra diven.
Jag kan inte mycket JavaScript men någonting i denna stilen hade jag gjort:
Ta reda på ett av de två lagernas fyra hörnpunkter. T.ex:
x : 20 - 78
y : 20 - 100
Kolla därefter de fyra hörnpunkterna, i tur och ordning, för det andra lagret.
Är värdet för x mellan 20 och 78?
I så fall; är värdet för y mellan 20 och 100?
I så fall: Bingo (eller kanske inte ;) )
Annars fortsätter du med nästa punkt, och sedan nästa och sedan nästa.
Gjorde en lösning som ser ut som nedan. Frågan är om den är bra. Den känns onödigt krånglig...
Anledningen till att jag har de två if-satserna är att man skall kunna välja om det första lagret skall vara det första eller andra argumentet som skickas till funktionen. Och vice versa.
Det finns inget event för detta utan det får du antingen kolla via en timeout-loop;
function checkcollision(){
if(overlap('box2','box1'){
// gör något här...
}
}
setInterval("checkcollision();",100);
Kommer alltså attkolla 10 ggr/sek om lagren ligger på varandra. Eller så får du kolla varje gång ett lager flyttas (via scriptet som sköter det) om lagren kolliderat.