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/vanderkampen.komma.pro/resources/assets/js/site/resizeHandler.js
/* ==========================================================================
   Resize handler
   - Handler the objects which are or need to be recalculated on resize
 ========================================================================== */

const ResizeHandler = {

    time: Date.now(),
    timeout: null,
    waitThrottle: 1000,
    waitDebounce: 500,

    //Initialisation
    init: function () {

        // Trigger start up resize
        ResizeHandler.triggerOnInit();

        // Throttle Resize
        window.addEventListener('resize', function () {
            if ((ResizeHandler.time + ResizeHandler.waitThrottle - Date.now()) < 0) {
                ResizeHandler.triggerThrottle();
                ResizeHandler.time = Date.now();
            }
        });

        // Smooth Resize
        window.addEventListener('resize', function () {
            ResizeHandler.triggerSmooth();
        });

        // Debounce Resize
        window.addEventListener('resize', function () {
            if(isset(ResizeHandler.timeout)) clearTimeout(ResizeHandler.timeout);
            ResizeHandler.timeout = setTimeout(ResizeHandler.triggerDebounce, ResizeHandler.waitDebounce);
        });
    },

    // Trigger on start up
    // All function should be in here
    triggerOnInit: function () {
        // ResizeHandler.resizeWhatDoesItCostAdvantageFigure();
        // console.log('Initial Resize');
        ResizeHandler.resizeStepsSliders();
    },

    // Trigger resize functions with throttle (preferred)
    triggerThrottle: function () {
        // console.log('Throttled Resize');
    },

    // Trigger resize on debounce
    triggerDebounce: function () {
        // console.log('Debounce Resize');
        // ResizeHandler.resizeWhatDoesItCostAdvantageFigure();
        ResizeHandler.resizeStepsSliders();
    },

    // Trigger resize on the flight
    triggerSmooth: function () {
        // console.log('Smooth Resize');
    },

    // ------------------------------ CUSTOM SCROLL HANDLERS ------------------------------------

    // Example function
    // resizeWhatDoesItCostAdvantageFigure: function () {
    //     var el = document.querySelector('.advantages-own-guiding-row figure');
    //     if(isset(el)){
    //         el.style.maxHeight = 'none';
    //         el.style.maxHeight = el.offsetHeight + 'px';
    //     }
    // },

    resizeStepsSliders: function () {
        const stepsSliders = document.querySelectorAll('.steps-slider');

        // Loop through all slider for when there are more then one
        if(isset(stepsSliders)){
            const stepsSlidersLength = stepsSliders.length;
            for (let i = 0; i < stepsSlidersLength; i++){
                const stepsSlider = stepsSliders[i];

                // Define the slider height
                let stepsSliderHeight = 0;
                const stepSliderSlides = stepsSlider.querySelectorAll('.slides .slide');
                const stepsSliderSlidesLength = stepSliderSlides.length;

                // Get the highest slide
                for (let i = 0; i < stepsSliderSlidesLength; i++){
                    const stepSliderSlide = stepSliderSlides[i];
                    const stepSliderSlideHeight = stepSliderSlide.offsetHeight;

                    if(stepSliderSlideHeight > stepsSliderHeight) stepsSliderHeight = stepSliderSlideHeight;
                }

                // Add extra height for the navigation buttons
                stepsSliderHeight += 40; 

                stepsSlider.querySelector('.slides').style.height = stepsSliderHeight +'px';

            }
        }
    },

};

ResizeHandler.init();