prev und next

rernanded

Erfahrenes Mitglied
Hi
benutze folgendes js um Bilder-urls aus einem Array nacheinander aufzurufen, vorwärts mit next und rückwärts mit prev.
Problem ist dass bei next das Array quasi immer durchlaufen wird und alles wieder von vorne mit der ersten Bild-url beginnt usf.
Nur bei prev funktioniert das rückwärts nicht so ganz. Zwar gehts rückwärts vom letzten(bzw. aktuellen) Bild bis zum ersten, dann aber leider nicht weiter erneut vom letzen usf.

Vgl.: Man kann also die Uhr vordrehen aber nur bedingt zurückdrehen.
Ich denke mal eine Schleife oder ein array-reverse könnten zum Einsatz kommen. js ist nicht mein Ding.!???

Ich könnte natürlich auch die var URLs in umgekehrter Reihenfolge auflisten ;)

Moni

HTML:
<head>

<script>
var URLs = ["fotos/autobau.jpg", "fotos/automechaniker.jpg", "fotos/autorad.jpg"];
var currURL = 0;
   function previmage() {
      currURL = (currURL - 1) % URLs.length;
      document.getElementById("imageeins").src = URLs[currURL];
   }
   function nextimage() {
      currURL = (currURL + 1) % URLs.length;
      document.getElementById("imageeins").src = URLs[currURL];
   } 
</script>
</head>

<body>

<img src="fotos/autobau.jpg" id="imageeins" width="139" height="auto" />
<button onclick="previmage()">PREV</button><button onclick="nextimage()">NEXT</button>

</body>
 
Zuletzt bearbeitet:
Das Problem ist, dass der modulo-Operator % für negative Werte nicht das Ergebnis liefert, das Du brauchst: (%-1) z. B. liefert -1. Beheben kannst Du es so:
Code:
   function previmage() {
      if (curURL == 0) currURL = URLs.length; else currURL--;
      document.getElementById("imageeins").src = URLs[currURL];
   }
Dieses:
Code:
currURL = (currURL - 1 + URLs.length) % URLs.length;
würde auch gehen, ist aber IMO ziemlich undurchsichtig.
 
Zuletzt bearbeitet:
Hi sempervivum und danke.
Funktioniert nicht ganz optimal, sondern so ist es besser (s.u.). Beim prev wurde nach dem ersten Bild des arrays(also quasi dem letzten beim zurück) immer noch ein leeres img ausgegeben.
Jetzt wird es übersprungen.
MONI
HTML:
function previmage() {
    if (currURL == 0) currURL = (URLs.length -1);
      else currURL--;
    document.getElementById("imageeins").src = URLs[currURL];
}
 
Zurück