Script verwechselt Bilder
grafagoggel
- javascript
0 Der Martin
0 planB0 Der Martin
0 planB
Hallo,
ich hab ein kleines Problem. Und zwar verwechselt mein Script, welcher eigentlich fast der gleiche wie dieser (http://de.selfhtml.org/javascript/beispiele/buttons.htm) hat, meine Bilder. Das aber auch erst seitdem ich weitere Bilder mit eingefügt habe.
html datei: www.grafagoggel.de/index.html
js datei: www.grafagoggel.de/navigation.js
Könntet ihr mir da helfen? Danke schon mal.
Moritz Graf
Hallo Moritz,
Und zwar verwechselt mein Script, welcher eigentlich fast der gleiche wie dieser (http://de.selfhtml.org/javascript/beispiele/buttons.htm) hat, meine Bilder. Das aber auch erst seitdem ich weitere Bilder mit eingefügt habe.
meine Glaskugel sagt: Du greifst über document.images[] auf die Bilder zu, hast aber die Reihenfolge der img-Elemente im Dokument nicht berücksichtigt. Merke: In document.images[] sind _alle_ Bildreferenzen gespeichert, die im HTML-Dokument vorkommen, und zwar genau in der Reihenfolge, in der die img-Elemente auftreten. Wenn du also welche eingefügt hast, die von deinem Bildertausch nicht betroffen sein sollen, musst du die Indexe entsprechend anpassen.
html datei: www.grafagoggel.de/index.html
Nein, da ist bloß ein sinnloses Frameset. Ich nehme an, du meinst in Wirklichkeit http://www.modthecase.de/grafagoggel/, oder?
js datei: www.grafagoggel.de/navigation.js
Nein, auch falsch, diese Ressource gibt es nicht. Es geht um http://www.modthecase.de/grafagoggel/navigation.js.
Und ich sehe nun auch, dass nicht etwa zusätzlich eingefügte Bilder das Problem sind - du indizierst document.images[] erst ab 1, den ersten Eintrag überspringst du einfach.
So long,
Martin
hallo,
vielleicht kann ich hier zur Klärung beitragen,
Und ich sehe nun auch, dass nicht etwa zusätzlich eingefügte Bilder das Problem sind - du indizierst document.images[] erst ab 1, den ersten Eintrag überspringst du einfach.
wahrscheinlich gab es vorher nur 1 Bild vor der Navigation, jetzt sind es 3.
Um sich die Arbeit etwas zu vereinfachen, würde ich in der Bildwechselfunktion einfach einen Offset von 2 einfügen, dann sollte es wieder laufen. Also in navigation.js
function Bildwechsel (Bildnr, Bildobjekt) {
window.document.images[Bildnr + 2 ].src = Bildobjekt.src;
// ^^^^^^ Offset einfügen
}
damit spart man sich die Anpassung in der *.html-Datei und zukünftige Änderungen lassen sich dann vielleicht ebenso einfach durchführen.
Gruss planB
Hi,
vielleicht kann ich hier zur Klärung beitragen,
sorry, aber ich fürchte nein.
wahrscheinlich gab es vorher nur 1 Bild vor der Navigation, jetzt sind es 3.
Nein. Das Beispiel aus SELFHTML, das Moritz als Vorbild genommen hat, enthält 3 Bilder, die es mit Index 0,1,2 anspricht. Moritz hat in seinem Dokument auch 3 Bilder, verwendet aber Index 1,2,3 - und damit fällt er auf die Klappe. ;-)
Ciao,
Martin
Hallo,
vielleicht ....
sorry, aber ich fürchte nein.
wahrscheinlich gab es ...
Nein. Das Beispiel ...
diese verschiedenen Meinungen tauchen oft auch zwischen Computer und Programmierer auf und da bleibt einem nix anderes übrig, als mit einer Kontrollfunktion (z.B. hier in navigation.js) der Sache auf den Grund zu gehen.
window.onload=function(e) {
var s="nr\tsrc\n";
with (document) {
for (var i=0;i<images.length;i++) {
s+=i+"\t"+images[i].src+"\n";
}
}
alert(s);
}
Wenn es denn funktioniert, muss das natürlich wieder entfernt werden
geschickter wäre es, den <img ..>-Tags Namen zu geben und sie darüber anzusprechen, oder noch besser mit CSS und Hintergrundbildern der Links
Gruß planB