Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Bilder bewegen .....
Frage
Hallo zusammen,
ich hoffe hier einen richtigen Javascript/DHTML [ZENS] zu finden da ich langsam aber sicher am verweifeln bin...
Ich habe ein Bild in einen IMG Tag und will dieses Bild bewegen.
Mein Problem ist nur das ich dafür OnMouseDown/Move und Up Abfragen muss ( da ich die Koordinaten der verschiebung noch für spätere Berechnungen brauche.
Das Problem ist das er beim OnMouseMove ( bei gedrückter Maustaste ) "denkt" ich würde das Bild nun mit Drag&Drop irgendwohin ziehen wollen und löst damit nicht mehr das OnMouseMove bzw OnMouseUp Event aus.
Hier ist ein Link wo ihr euch das mal angucken könnt.
http://www.webgeo.regioit-aachen.de/javascript/index.php
Vieleicht hat einer ne Ahnung was man da noch tun könnte ?
Vieleicht einen unsichtbaren/transparenten "Layer" drüberlegen aber ich wüsste nicht wie ich das anstellen könnte.
Etwas kompliziert das ganze, umso dankbarer wäre ich über eine Antwort.
Gruss
Thomas
Antwort 1 von Friedel
Das Bild bewegt sich. Ich kann mir zwar gur vorstellen, dass das nicht so ist, wie es sein soll, aber ich habe keine Ahnung wie es sein soll. Du schreibst, dass du am verzweifeln bist und dass du hoffst einen richtigen (keine Ahnung was) zu finden. Aber was willst du denn erreichen? Ich könnte dir auch sagen(/schreiben) wie du einen unsichtbaren Layer drüber legen kannst. Aber wozu?
Antwort 2 von Dr.Ma-Busen
Mahlzeit!
Das Problem könnte an der Funktion des Browser liegen die es erlaubt per Drag & Drop Bilder aus der Seite zu ziehen. (Hatte damit auch mal zu kämpfen)
Pack das Bild mal als Hintegrundbild in ein DIV- Tag und verschiebe das und nicht das Bild, könnte dann klappen.
Dann habe ich da noch so ein paar kleine Beanstandungen ;)
Schreib mal anstelle von
Hier weist du den Events funktionen zu, aber zu den Zeitpunkt gibt es die Funktionen noch nicht:
Hier weist du die Position des Bildes zu, aber zu den Zeitpunkt gibt es das Bild noch nicht:
Dann vielleicht noch ein kleinen Programmier tipp:
Ermittel nur in der mouse_move Funktion die cursor position und schreibe die in zwei gesonderte Variabeln. Und kopier den wert dann bei mousedown und mouse up in die entsprechenden Variabeln. Das hält das Script etwas kleiner und übersichtlicher.
So, dann habe ich noch was für dich ;)
Ich habe mir auch mal solch ein Script gemacht mit den man HTML- Objekte mit der Maus frei bewegen kann. Du findest es hier unter Meine Javascripte, es hat den namen Objekt Move
Vielleicht hilft es dir bei dein weiteren Vorhaben etwas weiter.
MfG
Dr. Ma-Busen
Das Problem könnte an der Funktion des Browser liegen die es erlaubt per Drag & Drop Bilder aus der Seite zu ziehen. (Hatte damit auch mal zu kämpfen)
Pack das Bild mal als Hintegrundbild in ein DIV- Tag und verschiebe das und nicht das Bild, könnte dann klappen.
Dann habe ich da noch so ein paar kleine Beanstandungen ;)
Schreib mal anstelle von
language=JavaScriptdastype="text/javascript"Hier weist du den Events funktionen zu, aber zu den Zeitpunkt gibt es die Funktionen noch nicht:
document.onmousedown = mouse_down;
document.onmousemove = mouse_move;
document.onmouseup = mouse_up;Hier weist du die Position des Bildes zu, aber zu den Zeitpunkt gibt es das Bild noch nicht:
var offsetx = document.bild.offsetLeft;
var offsety = document.bild.offsetTopDann vielleicht noch ein kleinen Programmier tipp:
Ermittel nur in der mouse_move Funktion die cursor position und schreibe die in zwei gesonderte Variabeln. Und kopier den wert dann bei mousedown und mouse up in die entsprechenden Variabeln. Das hält das Script etwas kleiner und übersichtlicher.
So, dann habe ich noch was für dich ;)
Ich habe mir auch mal solch ein Script gemacht mit den man HTML- Objekte mit der Maus frei bewegen kann. Du findest es hier unter Meine Javascripte, es hat den namen Objekt Move
Vielleicht hilft es dir bei dein weiteren Vorhaben etwas weiter.
MfG
Dr. Ma-Busen
Antwort 3 von ThomasOOP
@ friedel
das bild bewegt sich halt nicht wenn man
mit cursor über das bild geht + linke maustaste klickt + festhält + zieht
dann sieht man so kreis der durchgestrichen ist ( crNo heissts in Delphi - kennt man ja von drag&drop )
er denkt du willst das bild irgendwohin dra(g)gen und führt dann nicht mehr das onmousemove+up aus
den unsichtbaren layer brauch ich dann um das drag&drop ereignis auszutricksen
@ Dr.Ma-Busen
wie immer verdammt gute tips :-)
- das language=JavaScript kommt vom dreamweaver :-)
- das zuweisen der funktionen geht
- das mit den offset müsste ich erst testen, ist aber eh erstnicht nicht so wichtig ( verfälscht schlimmstenfalls die position )
alle 3 dinge funktionieren wohl deshalb weil der browser so fehlertolerant ist
ich werde es auch nur für den IE optimieren, alle anderen browser werde ich links liegen lassen
das mit nur onmousemove ist ne idee, bin mir aber nicht sicher ob ich damit exakte start und endpunkte ermitteln kann ( wie ihr schon gesehen habt soll das eine kartenfunktion werden, da kommt es auf jeden pixel an )
dein link ist leider tot :/
bzw der ganze server
kannst du mir das script an co-d-en@dun_eco_op.de schicken ? ( ohne die _ und - wegen spam )
das mit den div tag habe ich mir auch schon überlegt, sehe im moment auf keine andere möglichkeit
ich habe im internet eine seite gefunden die genau das kann was ich will, aber werde aus deren quellcode so garnicht schlau
hier zu finden
wäre nett wenn du mir das script zukommen lässt,
derweil probiere ich nochmal weiter
von nichts kommt schließlich auch nichts ;-)
gruss
Thomas
das bild bewegt sich halt nicht wenn man
mit cursor über das bild geht + linke maustaste klickt + festhält + zieht
dann sieht man so kreis der durchgestrichen ist ( crNo heissts in Delphi - kennt man ja von drag&drop )
er denkt du willst das bild irgendwohin dra(g)gen und führt dann nicht mehr das onmousemove+up aus
den unsichtbaren layer brauch ich dann um das drag&drop ereignis auszutricksen
@ Dr.Ma-Busen
wie immer verdammt gute tips :-)
- das language=JavaScript kommt vom dreamweaver :-)
- das zuweisen der funktionen geht
- das mit den offset müsste ich erst testen, ist aber eh erstnicht nicht so wichtig ( verfälscht schlimmstenfalls die position )
alle 3 dinge funktionieren wohl deshalb weil der browser so fehlertolerant ist
ich werde es auch nur für den IE optimieren, alle anderen browser werde ich links liegen lassen
das mit nur onmousemove ist ne idee, bin mir aber nicht sicher ob ich damit exakte start und endpunkte ermitteln kann ( wie ihr schon gesehen habt soll das eine kartenfunktion werden, da kommt es auf jeden pixel an )
dein link ist leider tot :/
bzw der ganze server
kannst du mir das script an co-d-en@dun_eco_op.de schicken ? ( ohne die _ und - wegen spam )
das mit den div tag habe ich mir auch schon überlegt, sehe im moment auf keine andere möglichkeit
ich habe im internet eine seite gefunden die genau das kann was ich will, aber werde aus deren quellcode so garnicht schlau
hier zu finden
wäre nett wenn du mir das script zukommen lässt,
derweil probiere ich nochmal weiter
von nichts kommt schließlich auch nichts ;-)
gruss
Thomas
Antwort 4 von ThomasOOP
zwischenstand ...
das mit den div tag geht garnicht da die refresh rate des Bildes nicht hoch genug ist und es somit permament flackert
naja, mal weiter testen
das mit den div tag geht garnicht da die refresh rate des Bildes nicht hoch genug ist und es somit permament flackert
naja, mal weiter testen
Antwort 5 von Dr.Ma-Busen
Mahlzeit!
Ja, habe ich schon gemerkt das meine Seite Offline ist, seltsam ist aber das ich auf den FTP noch drauf kommen :-?. Na ja, vielleicht werden jetzt mal die Bugs beseitigt am Server.
So, habe mir das mal angeshaut und gesehen wie der/die das Problem gelöst haben.
Da hätte ich damals eigentlich auch drauf kommen müssen, aber warum einfach wenn es auch kompliziert geht *G*
Also, um dein Problem zu beseitigen must du nichts anderes machen als am ende von deiner Funktion mouse_move die zwei kleinen zauberworte
Dann sollte das Problem beseitigt sein.
MfG
Dr. Ma-Busen
PS: Hast auch noch post, wenn die mail nicht in irgend einen Spamfilter gelandet ist.
Ja, habe ich schon gemerkt das meine Seite Offline ist, seltsam ist aber das ich auf den FTP noch drauf kommen :-?. Na ja, vielleicht werden jetzt mal die Bugs beseitigt am Server.
So, habe mir das mal angeshaut und gesehen wie der/die das Problem gelöst haben.
Da hätte ich damals eigentlich auch drauf kommen müssen, aber warum einfach wenn es auch kompliziert geht *G*
Also, um dein Problem zu beseitigen must du nichts anderes machen als am ende von deiner Funktion mouse_move die zwei kleinen zauberworte
return false;zu schreiben.Dann sollte das Problem beseitigt sein.
MfG
Dr. Ma-Busen
PS: Hast auch noch post, wenn die mail nicht in irgend einen Spamfilter gelandet ist.
Antwort 6 von ThomasOOP
jo post bekommen und return false ist des rätsels lösung ?
wenn das wirklich wahr ist häng ich mich auf ;-)
wenn das wirklich wahr ist häng ich mich auf ;-)
Antwort 7 von Dr.Ma-Busen
Also mit reutn false ging es bei mir.
Ich hatte deine beipiel Seite lokal bei mir gespeichert und es ausprobiert und es Funktionierte so, glaube ich, wie es haben willst.
MfG
Ich hatte deine beipiel Seite lokal bei mir gespeichert und es ausprobiert und es Funktionierte so, glaube ich, wie es haben willst.
MfG
Antwort 8 von ThomasOOP
jup funktioniert so wie ich es haben wollte :-)
ohne dich hätte ich da noch tage/wochen gebraucht
danke
ohne dich hätte ich da noch tage/wochen gebraucht
danke

