Rollover mit Besonderheit
kah
- javascript
0 Cheatah0 kah0 kah0 Axel Richter0 kah
Hallo
vielleicht ist jemand so freundlich und mag mir bei meinem Problem helfen. Also um meine Absicht kurz zu erklären.
Ein einfaches Bild. Sobald die Maus drüber fährt soll es sich ändern.
Ist die Maus wieder vom Bild weg erscheint das alte Bild. Aber klickt man nun darauf erscheint ein neues und bleibt unabhängig davon ob die Maus weiter darüber schwebt. Unten der komplette Source.
<html>
<head>
<title>blah</title>
<link rel="stylesheet" media="screen"
type="text/css" href="style.css">
<script type="text/javascript">
<!--
var imgs = new Array("images/tak1.jpg", "images/tak2.jpg",
"images/tak3.jpg");
var takeshi = new Array(imgs.length);
var block = 0;
function loadTakeshi() {
for(i=0; i<3; i++) {
takeshi[i] = new Image();
takeshi[i].src = imgs[i];
}
}
function playTakeshi(step, killflag) {
if (killflag == 0 && block !=1) {
window.document.images[0].src = takeshi[step];
}
else {
block = 1;
window.document.images[0].src = takeshi[2];
}
}
// -->
</script>
</head>
<body onLoad="loadTakeshi();">
<div style="text-align:center;padding-top:15px;">
<a onMouseover="playTakeshi(1,0);"
onMouseout="playTakeshi(0,0);"
onClick="playTakeshi(2,1)">
<img src="images/tak1.jpg" name="Takeshi" height="260"
width="300" alt="Takeshi Kitano from Sonatine">
</a>
<p>
god is away for the time being,<br>
so you may ...<br><br>
</p>
</div>
</body>
</html>
Hi,
Also um meine Absicht kurz zu erklären.
fein, die kennen wir nun. Umreißt Du bitte noch kurz Dein Problem, welches Du bei der Umsetzung hast?
Cheatah
Also um meine Absicht kurz zu erklären.
fein, die kennen wir nun. Umreißt Du bitte noch kurz Dein Problem, welches Du bei der Umsetzung hast?
Ähm, jau. Sobald ich also Maus drüber halte verschwindet mein schönes Bild und taucht auch nicht wieder auf. Das OnClick funktioniert auch nicht. Ich frag mich, ohne als zu viel zu wissen ;), ob das nun daran liegt das ich das Objekt falsch lade (mit document.images[0].src usw.) oder ob das Problem nicht schon früher ensteht.
Um einen weiteren Einblick in meine Bemühen zu gewähren:
Getestet habe ich es bisher mit Mozilla 1.6a und IE6. Bei beiden das beschriebene Problem. Ich denke es ist ein logischer Fehler und kein technischer. Die Javascript Konsole vom Mozilla meldet mir eben auch keinen solchen. Ich bin kein erfahrener Programmierer weder in JS noch in irgend einer anderen Sprache. Und die Logik kommt mir gern mal abhanden.
Hallo,
Um einen weiteren Einblick in meine Bemühen zu gewähren:
Getestet habe ich es bisher mit Mozilla 1.6a und IE6. Bei beiden das beschriebene Problem. Ich denke es ist ein logischer Fehler und kein technischer. Die Javascript Konsole vom Mozilla meldet mir eben auch keinen solchen.
Vollkommen korrekt. Es ist ein logischer Fehler.
Ich bin kein erfahrener Programmierer weder in JS noch in irgend einer anderen Sprache. Und die Logik kommt mir gern mal abhanden.
Wie kann man im JavaScript Fehler suchen? Man fügt an Positionen, an denen man den Fehler vermutet eine testweise Ausgabe von Werten ein. Wie Du schon richtig erkannt hast, wird ja Deine Funktion playTakeshi(step, killflag) durchaus aufgerufen. Dein Bild verschwindet ja. Nun sollte stattdessen ein neues Bild auftauchen, welche Du mit window.document.images[0].src = takeshi[step]; übergibst. Ich würde mal den Wert von takeshi[step] prüfen.
function playTakeshi(step, killflag) {
if (killflag == 0 && block !=1) {
alert(takeshi[step]);
window.document.images[0].src = takeshi[step];
}
else {
block = 1;
window.document.images[0].src = takeshi[2];
}
}
Hinweis: Die Ausgabe wird [Object] sein. Das ist auch korrekt, weil takeshi[step] ein Image-Objekt ist. Du solltest vielleicht versuchen der src-Eigenschaft des Bildes im Dokument den Wert der src-Eigenschaft des Image-Objektes zuzuweisen, nicht das Objekt selbst.
viele Grüße
Axel
Danke. Als ich die Eigenschaft des verschwundenen Bildes aufgerufen habe stand auch dort Objekt. Habe deinen Vorschlag ausprobiert und das Problem ist gelöst.
function playTakeshi(step, killflag) {
if (killflag == 0 && block !=1) {
alert(takeshi[step]);
window.document.images[0].src = takeshi[step].src;
}
else {
block = 1;
window.document.images[0].src = takeshi[2].src;
}
}
Danke dir
kah