MouseOver und Zeitverzögerung II
Georg
- javascript
0 n.d. parker0 Georg0 n.d. parker0 Georg
Meine HP beinhaltet mehrere Links, bei Berührung erscheint rechts davon ein Bild. Beim Verlassen
erscheint wieder die Originalgrafik. Das Problem ist, wenn die Links schnell hintereinander
berührt werden, erscheint der Zielbereich sehr unruhig (der ständige Wechsel zwischen
Original- und Zielgrafik). Dies wollte ich durch setTimeout (vgl. Nachricht "MouseOver und Zeitverzögerung" v. heute) entschärfen, was jedoch nicht gelang.
Bei MouseOut benutze ich "setTimeout('abschalten()',1000)" um den Vorgang hinauszuzögern.
Wird jedoch unter diesem Zeitparameter der nächste Link berührt, läuft die Funktion weiter und
stört die Anzeige der nächsten Zielgrafik. Es wird nicht die Zielgrafik, sondern die Originalgrafik
angezeigt (Funktion setTimeout vom vorherigen Link).
Gibt es die Möglichkeit diese Funktion zu unterbrechen?
z.B. Mit "var MouseOut = 1;" bei MouseOver
Ich hoffe, meine Darstellungen sind nicht zu verwirrend.
Georg
hi ho
du kannst dich ruhig an deinen alten thread ranhaengen.... (siehe FAQ)
zu deinem problem:
<../../tecb.htm#a23>
cua
n.d.p.
Sorry, beim nächsten mal.
Ich habe mir das Probe-Skript angeschaut, aber ich komme da nicht weiter und zwar bei der Übergabe der
Variablen (aktiv).
Hier nochmal meine Fkt‚s:
function einschalten(x)
{
if (document.images)
document.temp.src = Bild_array[x].src;
clearTimeout(aktiv)
}
function abschalten()
{
if (document.images)
aktiv = setTimeout('document.temp.src = Bild_array[0].src',1000);
}
Ich glaube bei "abschalten" müßte es soweit stimmen, aber bei "einschalten" mekkert er, daß aktiv undefiniert
sei. Es ist bestimmt rotzeinfach, aber ich sitzte schon den ganzen Tag vor der Kiste und kann nicht mehr
klar denken. Danke für einen Denkanstoß.
Georg
hi ho
function einschalten(x)
{
if (document.images)
document.temp.src = Bild_array[x].src;
clearTimeout(aktiv)
}
Die sicherste Variante waere, 'aktiv' schon zu definieren, zum beispiel so:
// am anfang des scripts:
aktiv=0;
//in der funktion
if (aktiv) {clearTimeout(aktiv);aktiv=0;} //ruecksetzen, fuer spaeter
so muesste es funktionieren
cua
n.d.p.
Hallo n.d.p,
genau das wars. Ich bedanke mich recht herzlich. Es ist schon ein schönes Gefühl nach so langer Ausprobiererei.
Zuletzt hat es schon funktioniert, jedoch kam immer diese Error-Meldung.
Also nochmal danke!
Ich wünsche Dir einen guten Start in die neue Woche.
Georg
P.S. Falls ich mich vertippt habe, entschuldigung, aber ich mache hier die ganze Zeit Freudensprünge.