Autor Zpráva
WencaTv
Profil
Zdravím, mám takový malý problém. Mám udělanou slideshow, ale není u ní autoplay, potřeboval bych nijak upravit script, aby slideshow mělo také fci autoplay, zde kdyžtak dokládám script:
var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = slides.length} ;
  for (i = 0; i < slides.length; i++) {
     slides[i].style.display = "none";  
  }
  for (i = 0; i < dots.length; i++) {
     dots[i].classList.remove("active");
  }
  slides[slideIndex-1].style.display = "block";  
  dots[slideIndex-1].classList.add("active");
}
$("#slideshow > div:gt(0)").hide();

$(document).ready( function(){ 
  $('#slides').innerfade({ 
      animationtype: 'fade',
      speed: 'slow',
      timeout: 2000, 
      type: 'random', 
      containerheight: '117px'
  });
});
Fisir
Profil
Reaguji na WencaTv:
Pomocí setInterval() periodicky spouštěj funkci currentSlide(1). Nebude to sice dokonalé, ale jako základ snad stačí.
WencaTv
Profil
Dobře a jak bych to měl do mého scriptu zakomponovat ?
WencaTv
Profil
Tak jsem to pořešil takto:
var slideIndex = 1,
    playAuto = true, /* playAuto = false; <-- K zastavení AUTOPLAY */
    s = 1, /* Počet sekund k zopakování obrázku */
    sliderFunction = setInterval(function showSlides(n) {
    
        "use strict";

        var i,
            slides = document.getElementsByClassName("mySlides"),
            dots = document.getElementsByClassName("dot");
        
        n = slideIndex;

        if (n > slides.length) { slideIndex = 1; }
        if (n < 1) { slideIndex = slides.length; }

        for (i = 0; i < slides.length; i += 1) {

            slides[i].style.display = "none";

        }

        for (i = 0; i < dots.length; i += 1) {

            dots[i].classList.remove("active");

        }

        slides[slideIndex - 1].style.display = "block";
        dots[slideIndex - 1].classList.add("active");

        slideIndex += 1;
        
       
        checkIfIsAuto();
    
    },  3* 1000);

function plusSlides(n) {
    
    "use strict";
    
    showSlides(slideIndex += n);
    
}

function currentSlide(n) {
    
    "use strict";
    
    showSlides(slideIndex = n);
    
}

function checkIfIsAuto() {
    
    "use strict";
    
    if (playAuto !== true) { clearInterval(sliderFunction); }
    
}

Bohužel se mi vždy než se provede první změna slideru rozhodí celý slider. viz. obrázek
V případě. že by někdo věděl co s tím, budu rád za radu. Také bych ocenil nijakou radu na nijakou stránku s css efektama.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0