Unterschiedliche Foliendauer für jedes Element im Bootstrap 3.1-Karussell

8

Ich versuche eine unterschiedliche Dauer für jede Folie zu haben, da meine Folien einige große Inhalte und einige kleine haben, bitte geben Sie mir eine Lösung mit Geige

Ich habe es versucht, aber es funktioniert nur beim Timing der Folienanimation:

%Vor%     
Umer bin Siddique 25.04.2014, 18:14
quelle

3 Antworten

22

Bootstrap 3.1 Karussell erlaubt keine unterschiedliche Dauer für jede Folie, aber es bietet eine Methode und ein Ereignis die wir verwenden können, um dies zu erreichen. p>

Wir werden das Ereignis slid.bs.carousel verwenden, um zu erkennen, wann das Karussell seinen Folienübergang abgeschlossen hat und die Option .carousel('pause') , um das Karussell daran zu hindern, durch die Elemente zu fahren.

Wir werden dieses Attribut data-interval="x" für jedes Karussellelement mit unterschiedlicher Zeitdauer verwenden, sodass unser HTML beispielsweise wie folgt aussieht:

%Vor%

Jetzt müssen wir nur noch:

  1. erkennt, wenn ein neues Objekt mit slid.bs.carousel angezeigt wird Ereignis
  2. überprüfe seine Dauer
  3. Pausiere das Karussell mit .carousel('pause')
  4. legt ein Timeout für die Dauer des Elements und nach der Dauer fest fertig, sollten wir das Karussell pausieren

Der JavaScript-Code sieht folgendermaßen aus:

%Vor%

Wie Sie sehen, sind wir am Anfang gezwungen, ein Startintervall hinzuzufügen, und ich habe es auf 1000ms eingestellt, aber ich entferne es jedes Mal, wenn ich das Karussell duration-1000 pausiere. Ich habe die folgenden Zeilen verwendet, um das Problem mit dem ersten Element zu lösen, da dieses Objekt nicht von slid event abgefangen wurde.

%Vor%

Ich habe auch bemerkt, dass, wenn der Benutzer die Pfeile drückt, die Zeitüberschreitung verrückt wird, deshalb lösche ich die Zeitüberschreitung jedes Mal, wenn der Benutzer auf den linken und rechten Pfeil drückt.

Hier ist mein Live-Beispiel Ссылка , ich hoffe, diese Antwort war hilfreich für Sie.

    
paulalexandru 25.04.2014, 21:12
quelle
0

Aus irgendeinem Grund schien die Pausenmethode für mich zu funktionieren. Also habe ich den folgenden Code benutzt und es hat für mich funktioniert. Dies funktioniert auch, wenn Sie mehrere Karussells auf derselben Seite haben. Dieser Ansatz erfordert jedoch, dass das Datenintervall-Attribut für jedes Karussellelement obligatorisch ist.

%Vor%     
goldsun 16.01.2017 08:15
quelle
-1
%Vor%     
Wixe 01.06.2017 19:51
quelle