File: D:/HostingSpaces/sdo/sdoschoonmaak.nl/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();