Solange Maus gedrückt... Hilfe
Goce
- javascript
0 Antje Hofmann0 Goce
Hi Leute!
Ich stehe vor einem (für mich) großem Prob:
Ich will solange ich die maustaste gedrückt halte das immer eine gleiche funktion aufgerufen wird, die ein div um 5px verschiebt. Nach loslassen der maustaste soll das div stehen bleichen. Ich habe es mit onmousedown="bewege()" versucht doch das klappt nicht. Im ref.teil des forums habe ich keinen befehl gefunden der mir weiterhelfen kann.
Danke für eure Hilfe,
Goce
Hallo Goce
Ich will solange ich die maustaste gedrückt halte das immer eine gleiche funktion aufgerufen wird, die ein div um 5px verschiebt. Nach loslassen der maustaste soll das div stehen bleichen. Ich habe es mit onmousedown="bewege()" versucht doch das klappt nicht.
Du hast den Ansatz an sich schon gefunden. Jetzt kommt es nur darauf an, der richtig anzuwenden.
rufe die Funktion mit einen Parameter auf:
onmousedown="bewege('start');
das onmouseup="bewege('ende');
onmouseup steht für das Loslassen der Maustaste.
In der Funktion bewege dann:
function bewege(zustand)
{
if (zustand=="ende") {
if (window.aktiv) window.clearTimeout(aktiv);
return;
}
else { /*deine Funktion zum bewegen von 5px*/
aktiv=setTimeout("bewege('start')",40);
}
}
Durch das setTimeout wird die Funktion immer wieder neu aufgerufen und der Div jeweils um 5px bewegt.
Nach Loslassen der Maustaste wird die Funktion nacheinmal aufgerufen. Hier jedoch mit einen anderen Parameter. Durch cleartimeout wird der automatische Aufruf gestoppt und mit return die Funktion vollständig abgebrochen.
zum Nachlesen:
<../../tecb.htm#a45>
<../../tecb.htm#a23>
<../../tebj.htm#a17>
Viele Grüße
Antje
Hallo Goce
Ich will solange ich die maustaste gedrückt halte das immer eine gleiche funktion aufgerufen wird, die ein div um 5px verschiebt. Nach loslassen der maustaste soll das div stehen bleichen. Ich habe es mit onmousedown="bewege()" versucht doch das klappt nicht.
Du hast den Ansatz an sich schon gefunden. Jetzt kommt es nur darauf an, der richtig anzuwenden.
rufe die Funktion mit einen Parameter auf:
onmousedown="bewege('start');
das onmouseup="bewege('ende');
onmouseup steht für das Loslassen der Maustaste.
In der Funktion bewege dann:
function bewege(zustand)
{
if (zustand=="ende") {
if (window.aktiv) window.clearTimeout(aktiv);
return;
}
else { /*deine Funktion zum bewegen von 5px*/
aktiv=setTimeout("bewege('start')",40);
}
}Durch das setTimeout wird die Funktion immer wieder neu aufgerufen und der Div jeweils um 5px bewegt.
Nach Loslassen der Maustaste wird die Funktion nacheinmal aufgerufen. Hier jedoch mit einen anderen Parameter. Durch cleartimeout wird der automatische Aufruf gestoppt und mit return die Funktion vollständig abgebrochen.zum Nachlesen:
<../../tecb.htm#a45>
<../../tecb.htm#a23>
<../../tebj.htm#a17>Viele Grüße
Antje
Suppppppppper!
Danke Antje!
Ich werde es direkt heute abend mal versuchen, aber es ist ne tolle lösung durch eine fkt.
Danke,
Goce