zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Probleme mit Bildergalerie

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 31.12.2008, 16:51
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 31.12.2008
Beiträge: 11
Mr.X33 befindet sich auf einem aufstrebenden Ast
Standard Probleme mit Bildergalerie

Hallo, ich habe ein Problem mit meiner Bildergalerie. Sie basiert auf ein einfaches JS-Script. Ich hab mir das ganze so vorgestellt, dass es ein großes Bild in der Mitte gibt und links und rechts je ein kleines, die jeweils das vorherige/nächste Bild zeigen. Mittels zwei Buttons kann man weiter oder zurück

Das Problem: Das erste Bild kommt nur ein einziges Mal, danach kommt es zwar bei der Vorschau ( und bei der "Nachschau" ) aber man muss zwei mal auf den button klicken und das bild wird einfach übersprungen... hier der Quelltext:

<script type="text/javascript">

var x=0;
var winter2 = new Image(); winter2.src = "Bilder/winter2.jpg";
var winter3 = new Image(); winter3.src = "Bilder/winter3.jpg";
var winter4 = new Image(); winter4.src = "Bilder/winter4.jpg";
var winter5 = new Image(); winter5.src = "Bilder/winter5.jpg";
var winter6 = new Image(); winter6.src = "Bilder/winter6.jpg";
var winter7 = new Image(); winter7.src = "Bilder/winter7.jpg";
var winter8 = new Image(); winter8.src = "Bilder/winter8.jpg";
var winter9 = new Image(); winter9.src = "Bilder/winter9.jpg";
var winter1 = new Image(); winter1.src = "Bilder/winter1.jpg";

var bilder = new Array(winter1, winter2, winter3, winter4, winter5, winter6, winter7, winter8, winter9, winter1);


function vor(){
x = x+1;
if(x==9){x=0;}
document.images[0].src = bilder[x-1].src
document.images[1].src = bilder[x].src
document.images[2].src = bilder[x+1].src
}

function zuruck(){
x= x-1;
if(x<0){x=8;}
document.images[0].src = bilder[x-1].src
document.images[1].src = bilder[x].src
document.images[2].src = bilder[x+1].src
}


</script>
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 01.01.2009, 18:29
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 15.01.2008
Ort: Berlin Mitte
Beiträge: 214
netbenni befindet sich auf einem aufstrebenden Ast
Standard

Dein Array fängt bei 0 an weshalb er bei 9 Elelementen maximal den Indexwert 8 haben kann

Bei zuruck() also :
HTML-Code:
if(x<0){x=8}
und bei vor() :
HTML-Code:
if(x==7){x=0}
Ein weiteres Problem ist, dass wenn du bei drei Bildern z.B
- links das letzte
- in der Mitte das erste und
- rechts das zweite Bild
zeigen möchtest,du nicht einfach
- ... = bilder[x-1]
- ... = bilder[x]
- ... = bilder[x+1]
verwenden kannst, da x jeweils immer den selben Wert hat.

Beim Endwert, also 8 ,würde dir nie bei ...[x+1] als letztes das erste Bild angezeigt werden (da x = 9 statt 0 wäre),
oder bei z.B. x=0 in der Mitte zwar das erste Bild aber im linken <img> nie das letzte (für x = 8 ) der Liste, da du ja x = -1 statt x = 8 hättest ....

Du must einen Weg finden, x so hoch und runter zu zählen, dass du x für das dritte Bild nicht einfach immer nur x+1 gibst, sondern dass, wenn du ans Ende des Arrays kommst, x für das dritte Bild automatisch = 0 wird für die anderen aber = 7 und = 8 bleibt (und das Gleiche, wenn du zurück gehst und an den Anfang des Arrays kommst).

bsp.:
(um links das letzte Bild, in der Mitte das erste Bild und rechts das zweite Bild zu zeigen)

HTML-Code:
document.images[0].src = bilder[8].src
document.images[1].src = bilder[0].src
document.images[2].src = bilder[1].src

. .. . lange Rede, kurzer Sinn
... ich hoff, das hilft

PS: für Angaben von Code (in deinem Fall JavascriptCode) bitte immer im Editor die html-code bzw. php-code Felder zum einrahmen nutzen

Das sieht dann gleich viel schöner und übersichtlicher aus
__________________
„Tu soviel Gutes, wie Du kannst, und mache so wenig Gerede wie nur möglich darüber.“
C.D.

Geändert von netbenni (01.01.2009 um 19:07 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 01.01.2009, 19:11
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 31.12.2008
Beiträge: 11
Mr.X33 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von netbenni Beitrag anzeigen
Dein Array fängt bei 0 an weshalb er bei 9 Elelementen maximal den Indexwert 8 haben kann

Beim Endwert, also 8 ,würde dir nie bei ...[x+1] als letztes das erste Bild angezeigt werden (da x = 9 statt 0 wäre),
oder bei z.B. x=0 in der Mitte zwar das erste Bild aber im linken <img> nie das letzte (für x = 8 ) der Liste, da du ja x = -1 statt x = 8 hättest ....
aber vorher wird doch definiert, dass sobald x kleiner als 0 zu 8 wird und dass falls es größer als 7 ist wieder zu null wird... oder irre ich mich da etwa?
Mit Zitat antworten
  #4 (permalink)  
Alt 01.01.2009, 19:38
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 15.01.2008
Ort: Berlin Mitte
Beiträge: 214
netbenni befindet sich auf einem aufstrebenden Ast
Standard

OK, stimmt, x wird ja gleich nachdem es erhöht/verringert wurde, geprüft ob es zu groß oder zu klein ist (= 9 oder < 0 ), da hast du recht ... entschuldige

... aber ...

FÜR VOR()
Wenn x = 9 ist, wird es im nächsten Schritt = 0 gesetzt.
Mit deinem Code würde dann Folgendes erzeugt werden:

HTML-Code:
document.images[0].src = bilder[-1].src
document.images[1].src = bilder[0].src
document.images[2].src = bilder[1].src
'bilder[-1]' gibt es aber nicht, was dir auch z.B. im FireFox oder im IE als Fehler angegeben wird.

FÜR ZURUCK()
Hier tritt im Prinzip der gleiche Fehler auf.


Du müsstest vielleicht statt einer Variable x
drei Variablen, von mir aus x,y,z, seperat hoch und runter zählen und für jede einzelne jeweils prüfen, ob sie zu groß oder zu klein ist.


Also so :
HTML-Code:
var x=0,y=1,z=2;

  ....

function vor(){
x++;
y++;
z++;
if(x==9){x=0;}
if(y==9){y=0;}
if(z==9){z=0;}
document.images[0].src = bilder[x].src
document.images[1].src = bilder[y].src
document.images[2].src = bilder[z].src
}

function zuruck(){
x--;
y--;
z--;
if(x<0){x=8;}
if(y<0){y=8;}
if(z<0){z=8;}
document.images[0].src = bilder[x].src
document.images[1].src = bilder[y].src
document.images[2].src = bilder[z].src
}
Habs kurz bei mir getestet und es geht.
__________________
„Tu soviel Gutes, wie Du kannst, und mache so wenig Gerede wie nur möglich darüber.“
C.D.

Geändert von netbenni (01.01.2009 um 19:40 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 04.01.2009, 11:47
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 31.12.2008
Beiträge: 11
Mr.X33 befindet sich auf einem aufstrebenden Ast
Standard

stimmt, man kann ja vorher x,y und z definieren und diese dann abzählen lassen...

danke
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
paar Probleme mit dem CSS Layout SimonK. CSS 6 05.10.2008 15:57
hasLayout Problem mit "Ulles" hover Bildergalerie regioprint CSS 7 17.03.2008 11:45
Probleme mit Bildergalerie Petty CSS 3 29.03.2007 14:09
Probleme mit Bildergalerie Lili0312 Site- und Layoutcheck 3 03.03.2007 15:35
IE: Probleme mit ul-Menü Ares CSS 4 18.10.2006 12:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:49 Uhr.