Ich habe für ein neues Modul bereits Drag & Drop Funktionen in JavaScript eingebaut, soweit kein Problem, die Divs und Bilders kann man nun schön rumschieben.
Nun ist es aber so, daß ich gerne über Drag & Drop Ereignisse auslösen möchte. Also wenn man ein Icon in einen bestimmten Bereich zieht und dort los läßt, soll entsprechend eine Aktion durchgeführt werden.
Also folgende Situation:
DIV A ist Drag & Drop fähig. Wird DIV A über DIV B fallengelassen, dann soll eine Aktion ausgeführt werden, ansonsten soll DIV A wieder an seine Ursprungsposition zurückversetzt werden.
Jemand eine Idee, wie das ohne hardgecodete Positionen funktionieren könnte?
Edit: Ach ja, ich will auch kein Riesenframework benutzen...
Über Drag & Drop Ereignisse auslösen
gepostet vor 18 Jahre von Itchy
gepostet vor 18 Jahre von knalli
Mal angenommen, du nutzt sowas wie Script.aculo.us.. reicht es nicht, mal rein theoretisch: Man erstellt ein Event auf DivA (ne Funktion, o.ä.) und bindet dort Div B ein. Dann kann dort ein einfacher Bezug der Koordianten genommen werden.
if(DivA_x > DivB_x && DivA_x < DivB_x+DivB_w)..
x = vertikal, w = breite
if(DivA_x > DivB_x && DivA_x < DivB_x+DivB_w)..
x = vertikal, w = breite
gepostet vor 18 Jahre von exe
Wenn dir sowas wie script.aculo.us schon zu riesig ist (ist eigentlich ein recht simples "Framework"), dann kannst du dir dort immernoch abschauen wie die das Drag & Drop gelöst haben. Bei script.aculo.us gibts nämlich genau diese Funktion: Draggables und Droppables sind deine Freunde
gepostet vor 18 Jahre von Itchy
Also Scriptaculus fällt mit seinen 200k durchaus in die Kategorie riesig, sowas wollte ich eigentlich nicht verwenden.
Ich glaube kaum, daß ich dort die Funktionen per Reverse Engineering rausbekomme, den Code hab ich mir schon angeschaut...
Ich glaube kaum, daß ich dort die Funktionen per Reverse Engineering rausbekomme, den Code hab ich mir schon angeschaut...
gepostet vor 18 Jahre von knalli
Script.aculo.us ist in Modulen aufgebaut.. du musst nur die Libs laden, die du brauchst. Rechne nochmal neu