• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

JQuery .toogle und .slideToogle funktionieren nicht auf Safari

roman@mkperformance

Neues Mitglied
Ich soll für einen Freund eine kleine Bildergalerie entwerfen, die durch 3 verschiedene Bilder mit Bildunterschrift toogled. Der Code funktioniert sowohl auf IE8+, Opera, Firefox und Chrome, aber auf Safari nicht, dort toogled nur die Bildunterschrift durch das Fenster, aber nicht die 3 Bilder und ichkann nicht herausfinden, warum.

Also hier ist der Code, der call Befehl ist im body-tag (<body onLoad="refGo()" >) . Ich hoffe jemand hat eine Idee warum es gerade auf Safari nicht ganz funktioniert!


JS:
  1. function refGo() {

  2. var bgCounter = 0;
  3. var naCounter = 0;
  4. names = [
  5. "Heimkino Gewinnspiel",
  6. "Traumwochenende Gewinnspiel",
  7. "SG Diana Schondorf"
  8. ];
  9. backgrounds = [
  10. "Referenzen/heimkino.png",
  11. "Referenzen/traumwe.png",
  12. "Referenzen/sgdiana.png"
  13. ];
  14. function changeBackground()
  15. {
  16. $( " #refText" ).slideToggle( "slow", function() {
  17. naCounter = (naCounter+1) % names.length;
  18. jQuery('#refText').text(names[naCounter]);
  19. });
  20. $( " #refChange" ).slideToggle( "slow", function() {
  21. bgCounter = (bgCounter+1) % backgrounds.length;
  22. $('#refChange').css('background', 'url('+backgrounds[bgCounter]+') no-repeat scroll center center / cover');
  23. });
  24. $( " #refChange " ).slideToggle( "slow", function() {
  25. });
  26. $( " #refText " ).slideToggle( "slow", function() {

  27. setTimeout(changeBackground,5000);
  28. });
  29. }
  30. changeBackground();
  31. }

html:


  1. <a href="referenzen.html"><h2 style="float: left; width:400px; margin-top: 15px;">Referenzen</h2>
  2. <div class="refStartpage">
  3. <div class="news" id="refChange"> </div>
  4. <div id="refText"></div>
  5. </div>
  6. </a>

css:

#refText {
font-style: italic;

}

#refChange {
float: left;
height: 200px;
margin-left: 20px;
margin-top: 15px;
width: 380px;
}

.refStartpage {
float: left;
height:400px;
width:380px;
}


Wäre klasse wenn mir jemand helfen könnte, ich komm hier einfach nicht weiter!
Vielen dank schon im vorraus!
 
Werbung:
Ich sehe das auf Anhieb jetzt nicht, aber der erste Schritt wäre, den Code aufzuräumen. Wenn du meinst, dass slideToggle() in diesem Kontext sinnvoll ist, reicht der einmalige Aufruf anstatt vier oder fünf mal. Der zweite Schritt wäre, die beiden Arrays in einem Objekt zu vereinen, also so:

Code:
elements = {
  ''referenzen/heimkino.png" : "Heimkino Gewinnspiel",
  ......................
}

Bei der Gelegenheit würde ich auch die Pfade kleinschreiben. Alternativ dazu könntest du vorab einen funktionierenden background-image Switch schreiben und diesen anschließend erweitern.
 
Fand deinen Code und deinen Ansatz etwas unaufgeräumt.
Ich habe da mal ein Galerie Bespiel für dich geschrieben. Anbei die index.html, gallery.js und 3 Bilde. In der index siehst du so einen Aufruf. Darfst den Code gerne verändern soviel du willst.
Wenn du fragen hast, schreib hier rein :)
 

Anhänge

  • gallery.zip
    7,6 KB · Aufrufe: 3
Werbung:
Zurück
Oben