• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] setTimeout bei Slideraufruf bzw. verzögerter Javascript-Slider-Start möglich?

ff01

New member
Hallo,

ich habe auf einer Seite einen Javascript-Slider (kein JQuery) eingebunden. Alles funktioniert soweit mein Ziel ist es den Slider zeitverzögert zu starten. Gibt es hier eine Möglichkeit? (mit setTimeout scheint es nicht zu funktionieren).

Code:
var sliderOptions=
{
sliderId: "slider",
	startSlide: 0,
	effect: "13",
	effectRandom: false,
	pauseTime: 2600,
	transitionTime: 1100,
	slices: 14,
	boxes: 11,
	hoverPause: 0,
	autoAdvance: true,
	captionOpacity: 0.5,
	captionEffect: "rotate",
	thumbnailsWrapperId: null,
	m: true,
};

/* Standardaufruf ohne Verzögerung: */
var imageSlider=new mcImgSlider(sliderOptions);

/* 
Folgendes funktioniert leider nicht, der Slider läuft zwar allerdings ohne Zeitverzögerung:
setTimeout(new mcImgSlider(sliderOptions), 5000);
*/

/* Menucool Javascript Image Slider v2014.1.4. Copyright www.menucool.com */
function mcImgSlider(k){
...
}

Danke und Grüße!
 
Hallo,
der Fehler liegt hier:
Code:
setTimeout(new mcImgSlider(sliderOptions), 5000);
new mcImgSlider(sliderOptions) liefert eine Variable, setTimeout braucht jedoch eine Funktion an dieser Stelle. Probiers mal so:
Code:
setTimeout(function() {new mcImgSlider(sliderOptions);}, 5000);
Viel Erfolg und viele Grüße - Ulrich
 
Hallo Ulrich,

ich Danke Dir für die schnelle Antwort! Leider funktioniert mit der Variante der Slider nicht mehr. Hmm an was könnte das liegen? Der Syntax passt ja soweit.

Gibt es denn noch eine andere Möglichkeit den Aufruf zu verzögern?

Danke und Grüße!
 
Probier's mal so:
Code:
setTimeout(function() {var imageSlider = new mcImgSlider(sliderOptions);}, 5000);
Und wenn es dann noch nicht geht, lade die Seite hoch und poste die URL.
 
Willst du wirklich den Slider erst fünf Sekunden später erzeugen/darstellen? Oder willst du, dass der Slider sein "autoAdvance" erst später macht?

Wenn letzteres, dann musst du autoAdvance auf false stellen und in einem window.setTimeout() den slider dann per Hand "advancieren" (k.A. wie das geht - das muss irgendwo in der Dokumentation des Sliders stehen).
 
Zuletzt bearbeitet:
Danke für die Antworten!!

Mein Ziel ist folgendes: Auf einer Seite gibt es mehrere Slider, die beim Aufrufen der Seite nacheinander z.B. im Abstand von 2 Sek. (also nicht gleichzeitig) starten.

Ich habe das Skript mal auf einer Testdomain raufgeladen: Slidertest

Die Idee folgendes zu nutzen, funktioniert leider auch nicht:

Code:
setTimeout(function() {var imageSlider = new mcImgSlider(sliderOptions);}, 5000);

Zum Thema "manuelles autoAdvance" steht leider in der Doku nichts.
 
Danke für die Antworten!!

Bisher funktioniert es leider mit den vorgeschlagenen Lösungswegen nicht.

Grundsätzlich würde ich gerne erreichen, dass 2 Slider auf einer Webseite nacheinander und nicht gleichzeitig starten.

Ich habe das Skript mal auf eine Testdomain geladen: Untitled Document

Danke und Grüße!
 
Zurück
Oben