HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/slenders.komma.pro/resources/js/site/components/uspImpressionsHandler.js
/* ==========================================================================
    Usp Impressions handler
 ========================================================================== */

const UspImpressionsHandler = {

    timeout: null,

    init: function() {

        const uspImpressionsTrays = document.querySelectorAll('.js-usp-impressions');
        const uspImpressionsTraysLength = uspImpressionsTrays.length;

        for(let i = 0; i < uspImpressionsTraysLength; i++) {

            const uspImpressionsTray = uspImpressionsTrays[i];

            const uspImpressionSlider = new UspImpressionSlider(uspImpressionsTray);
            uspImpressionSlider.autoSlide();

        }
    },
};

class UspImpressionSlider {

    constructor(slider) {
        this.slider = slider;
        this.slides  = this.slider.querySelectorAll('.js-usp-impression');

        this.currentSlide = 0;
        this.slideInterval = 4000;
    }

    autoSlide() {
        const self = this;

        setTimeout(function () {
            self.nextSlide();
            self.autoSlide();
        }, this.slideInterval);
    }

    nextSlide() {

        this.currentSlide ++;
        if(this.currentSlide >= this.slides.length) this.currentSlide = 0;

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

            const slide = this.slides[i];
            const slideId = slide.getAttribute('data-usp');

            if( slideId == this.currentSlide ) {
                slide.classList.add('is-active');
            }
            else{
                slide.classList.remove('is-active');
            }
        }
    }
}

UspImpressionsHandler.init();