Search code examples
javascripthtmlcssslideshow

Javascript Slideshow Speed


I have this Code with a Slideshow for Images. I Would like to set the time the images are fixed. (Image one rest for 10min and then fade out). All the Images should rest about 10min. I like to use this for a Infoscreen in my company. Please help :)

(function() {

function Slideshow( element ) {
    this.el = document.querySelector( element );
    this.init();
}

Slideshow.prototype = {
    init: function() {
        this.wrapper = this.el.querySelector( ".slider-wrapper" );
        this.slides = this.el.querySelectorAll( ".slide" );
        this.previous = this.el.querySelector( ".slider-previous" );
        this.next = this.el.querySelector( ".slider-next" );
        this.index = 0;
        this.total = this.slides.length;
        this.timer = null;

        this.action();
        this.stopStart();
    },
    _slideTo: function( slide ) {
        var currentSlide = this.slides[slide];
        currentSlide.style.opacity = 1;

        for( var i = 0; i < this.slides.length; i++ ) {
            var slide = this.slides[i];
            if( slide !== currentSlide ) {
                slide.style.opacity = 0;
            }
        }
    },
    action: function() {
        var self = this;
        self.timer = setInterval(function() {
            self.index++;
            if( self.index == self.slides.length ) {
                self.index = 0;
            }
            self._slideTo( self.index );

        }, 3000);
    },
    stopStart: function() {
        var self = this;
        self.el.addEventListener( "mouseover", function() {
            clearInterval( self.timer );
            self.timer = null;

        }, false);
        self.el.addEventListener( "mouseout", function() {
            self.action();

        }, false);
    }


};

document.addEventListener( "DOMContentLoaded", function() {

    var slider = new Slideshow( "#main-slider" );

});


})();

Solution

  • Well, there is only on thing that controls anything timing related in your code, so its a pretty safe bet that's what you want to change.

    You have a setInterval() in action with its time set to 3000. Change that to 600000 (10m * 60s * 1000ms) and you should be all set.