function UCMarquee(marquee) { var g_marquee; function cloneSlider() { Array.prototype.forEach.call(g_marquee, item => { var parent = item var slide = item.children Array.prototype.forEach.call(slide, item => { parent.appendChild(item.cloneNode(true)) }) }) } function wrapSlides() { Array.prototype.forEach.call(g_marquee, item => { item.innerHTML = '
' + item.innerHTML + '
' }) } function setWidth() { Array.prototype.forEach.call(g_marquee, parentItem => { //make sure that parentItem is displayed on a page before measure its width parentItem.style.display = "flex"; var parentWidth = parentItem.offsetWidth; var slide = parentItem.querySelectorAll('.uc_logo_marquee_holder'); var viewportWidth = parseInt(jQuery(window).width()); var isBreakPoint = function (breakpoint) { var breakpointsArray = [319, 767, 1024, 1920]; var breakpointsArrayLength = breakpointsArray.length; var min, max; for (var i = 0; i < breakpointsArrayLength; i++) { if (breakpointsArray[i] === breakpoint) { min = breakpointsArray[i-1] || 0 max = breakpointsArray[i] break } } return viewportWidth > min && viewportWidth <= max } var dataHeight = parseInt(jQuery(parentItem).attr('data-height')); var dataMargin = jQuery(parentItem).data('margin'); var dataItemsNumberMobile = jQuery(parentItem).data('mobile-items'); var dataItemsNumberTablet = jQuery(parentItem).data('tablet-items'); var dataItemsNumberDesktop = jQuery(parentItem).data('desktop-items'); var direction = jQuery(parentItem).data('direction'); if (direction == 'up' || direction == 'down'){ if (isBreakPoint(767)) parentItem.style.height = (dataHeight + dataMargin) * dataItemsNumberMobile + 'px' if (isBreakPoint(1024)) parentItem.style.height = (dataHeight + dataMargin) * dataItemsNumberTablet + 'px' if (isBreakPoint(1920) || viewportWidth > 1920 ) parentItem.style.height = (dataHeight + dataMargin) * dataItemsNumberDesktop + 'px' } parentItem.style.display = "none"; Array.prototype.forEach.call(slide, item => { if(direction == 'right' || direction == 'left') item.style.marginRight = dataMargin + 'px' if(direction == 'up' || direction == 'down') item.style.marginTop = dataMargin + 'px' if(direction == 'right' || direction == 'left' ){ if (isBreakPoint(767)) item.style.width = (parentWidth / dataItemsNumberMobile) - dataMargin + 'px' if (isBreakPoint(1024)) item.style.width = (parentWidth / dataItemsNumberTablet) - dataMargin + 'px' if (isBreakPoint(1920) || (viewportWidth > 1920)) item.style.width = (parentWidth / dataItemsNumberDesktop) - dataMargin + 'px' } }) setTimeout(function(){ parentItem.style.display = "flex"; },200); }) } function setAnimationOptions() { Array.prototype.forEach.call(g_marquee, item => { var speed = jQuery(item).data('speed'); var marqueeList = item.children[0] var slidesAmount = marqueeList.children.length / 4 var marqueeSpeed = speed * slidesAmount marqueeList.style.animationDuration = marqueeSpeed / 1000 + 's' marqueeList.style.WebkitAnimationDuration = marqueeSpeed / 1000 + 's' var paused = jQuery(item).data('paused'); if (paused) { marqueeList.onmouseenter = (event) => { event.target.style.animationPlayState = 'paused' event.target.style.WebkitAnimationPlayState = 'paused' } marqueeList.onmouseleave = (event) => { event.target.style.animationPlayState = '' event.target.style.WebkitAnimationPlayState = '' } } }) } function init() { g_marquee = marquee; cloneSlider() cloneSlider() setWidth() wrapSlides() setAnimationOptions() var width = jQuery(window).width(); window.addEventListener('resize', function() { if (jQuery(this).width() != width) { width = jQuery(this).width(); setWidth() } }) } init() }