onmouseover Bilderwechsel verzögern
elisabeth
- javascript
Hallo,
ich habe folgendes Problem:
ich will sehr viele, in einer
Tabelle angeordnete Bilder per onmouse...
wechseln lassen.
Ich habe jetzt für jedes Bild eine eigene Funktion
gemacht, nach folgendem Schema:
function wechsel09(bildpfad) {
document.images["nr09"].src=bildpfad; }
das Bild sieht so aus
<td>
<a href="center.html" onmouseover="wechsel09('pic/09_grau.jpg')" onmouseout="wechsel09('pic/09_blau.jpg')">
<img name="nr09" src="blau_zu_grau/09_blau.jpg" width="70" height="69" border="0">
</a>
</td>
nun möchte ich die jeweiligen Wechsel aber verzögern.
Ich habe das setTimeout schon auf verschiedenste Weise eingebunden.
am aussichtsreichsten erschien mir:
onmouseover="setTimeout("wechsel01('pic/09_grau.jpg');",1500);"
aber auch das hat nicht geklappt.
Kann mir jemand einen Tipp geben?
Haupsächlich kommt es mir auf's onmouseover an, das onmouseout wäre
ein zweiter schritt (falls sich die Verzögerungen behindern sollten).
vielen dank,
elisabeth
Hallo,
Ich habe jetzt für jedes Bild eine eigene Funktion
gemacht, nach folgendem Schema:
also das ist unnötig viel Code. viel eleganter wäre doch eine Funktion, der du noch den Bildname übergibst:
function wechsel(bildname, bildpfad) {
document.images[bildname].src=bildpfad; }
am aussichtsreichsten erschien mir:
onmouseover="setTimeout("wechsel01('pic/09_grau.jpg');",1500);"
sieht fast gut aus. Ich denke es klappt nicht, da du " innerhalb " benutzt. Du musst also "escapen": Probier mal:
onmouseover="setTimeout("wechsel01('pic/09_grau.jpg');",1500);"
oder sonst einfach mit neuer Funktion und die beim onmouseouver aufrufen:
onmouseover="verzoegerterBildWechsel('...');";
ein zweiter schritt (falls sich die Verzögerungen behindern sollten).
ja, das werden sie evtl: Lösung: dem Timeout einen namen geben und das Timeout beim onmouseout löschen:
var timer = setTimeout(...)
onmouseout="clearTimeout(timer);Bildwechsel()";
dann wird das timeout gestoppt und nicht mehr das Bild gewechselt.
Christian
hallo Christian,
danke für deine Antwort
also das ist unnötig viel Code. viel eleganter wäre doch eine Funktion, der du noch den Bildname übergibst:
function wechsel(bildname, bildpfad) {
document.images[bildname].src=bildpfad; }
ja, du hast natürlich Recht, aber ich wollte diese
Verzögerung auch für jedes Bild einzeln angeben
Inzwischen werde ich es aber wohl mit deiner Funktion
machen.
das mit dem setTimeout-Aufruf nach onmouseover
funktioniert in zig Varianten nicht.
Ich habe mir nun überlegt, einfach eine funktion zu
machen, bekomme es aber nicht hin, das diese verzögert
ausgeführt wird.
ein versuch:
function wechsel(bildname, bildpfad) {
window.setTimeout("wechsel(bildname, bildpfad);",5000);
document.images[bildname].src=bildpfad; }
ein anderer:
function wechsel(bildname, bildpfad) {
window.setTimeout("document.images[bildname].src=bildpfad;",5000);
}
Falls ich das irgendwann mal schaffe, will ich diese
Zeitverzögerung noch per Zufallsvariable machen.
grüße,
elisabeth