1function UCMarquee(marquee) { 2 3 var g_marquee; 4 5 function cloneSlider() { 6 Array.prototype.forEach.call(g_marquee, item => { 7 var parent = item 8 var slide = item.children 9 Array.prototype.forEach.call(slide, item => { 10 parent.appendChild(item.cloneNode(true)) 11 }) 12 }) 13 } 14 15 function wrapSlides() { 16 Array.prototype.forEach.call(g_marquee, item => { 17 item.innerHTML = '<div class="uc-logo-wrapper">' + item.innerHTML + '</div>' 18 }) 19 } 20 21 function setWidth() { 22 Array.prototype.forEach.call(g_marquee, parentItem => { 23 24 //make sure that parentItem is displayed on a page before measure its width 25 parentItem.style.display = "flex"; 26 27 var parentWidth = parentItem.offsetWidth; 28 var slide = parentItem.querySelectorAll('.uc_logo_marquee_holder'); 29 var viewportWidth = parseInt(window.innerWidth); 30 31 var isBreakPoint = function (breakpoint) { 32 var breakpointsArray = [319, 767, 1024, 1920]; 33 var breakpointsArrayLength = breakpointsArray.length; 34 var min, max; 35 36 for (var i = 0; i < breakpointsArrayLength; i++) { 37 if (breakpointsArray[i] === breakpoint) { 38 min = breakpointsArray[i-1] || 0 39 max = breakpointsArray[i] 40 break 41 } 42 } 43 return viewportWidth > min && viewportWidth <= max 44 } 45 46 var dataHeight = parseInt(jQuery(parentItem).attr('data-height')); 47 var dataMarginDesktop = jQuery(parentItem).data('desktop-margin'); 48 var dataMarginTablet = jQuery(parentItem).data('tablet-margin'); 49 var dataMarginMobile = jQuery(parentItem).data('mobile-margin'); 50 var dataItemsNumberMobile = jQuery(parentItem).data('mobile-items'); 51 var dataItemsNumberTablet = jQuery(parentItem).data('tablet-items'); 52 var dataItemsNumberDesktop = jQuery(parentItem).data('desktop-items'); 53 var direction = jQuery(parentItem).data('direction'); 54 55 if (direction == 'up' || direction == 'down'){ 56 57 if (isBreakPoint(767)) 58 parentItem.style.height = (dataHeight + dataMarginMobile) * dataItemsNumberMobile + 'px' 59 60 if (isBreakPoint(1024)) 61 parentItem.style.height = (dataHeight + dataMarginTablet) * dataItemsNumberTablet + 'px' 62 63 if (isBreakPoint(1920) || viewportWidth > 1920 ) 64 parentItem.style.height = (dataHeight + dataMarginDesktop) * dataItemsNumberDesktop + 'px' 65 66 } 67 68 parentItem.style.display = "none"; 69 70 Array.prototype.forEach.call(slide, item => { 71 72 if(direction == 'right' || direction == 'left'){ 73 if (isBreakPoint(767)) 74 item.style.marginRight = dataMarginMobile + 'px' 75 76 if (isBreakPoint(1024)) 77 item.style.marginRight = dataMarginTablet + 'px' 78 79 if (isBreakPoint(1920) || viewportWidth > 1920 ) 80 item.style.marginRight = dataMarginDesktop + 'px' 81 } 82 83 if(direction == 'up' || direction == 'down'){ 84 if (isBreakPoint(767)) 85 item.style.marginTop = dataMarginMobile + 'px' 86 87 if (isBreakPoint(1024)) 88 item.style.marginTop = dataMarginTablet + 'px' 89 90 if (isBreakPoint(1920) || viewportWidth > 1920 ) 91 item.style.marginTop = dataMarginDesktop + 'px' 92 } 93 94 if(direction == 'right' || direction == 'left' ){ 95 96 if (isBreakPoint(767)) 97 item.style.width = (parentWidth / dataItemsNumberMobile) - dataMarginMobile + 'px' 98 99 if (isBreakPoint(1024)) 100 item.style.width = (parentWidth / dataItemsNumberTablet) - dataMarginTablet + 'px' 101 102 if (isBreakPoint(1920) || (viewportWidth > 1920)) 103 item.style.width = (parentWidth / dataItemsNumberDesktop) - dataMarginDesktop + 'px' 104 105 } 106 }) 107 108 setTimeout(function(){ 109 parentItem.style.display = "flex"; 110 },200); 111 112 }) 113 } 114 115 function setAnimationOptions() { 116 Array.prototype.forEach.call(g_marquee, item => { 117 var speed = jQuery(item).data('speed'); 118 var marqueeList = item.children[0] 119 var slidesAmount = marqueeList.children.length / 4 120 var marqueeSpeed = speed * slidesAmount 121 122 marqueeList.style.animationDuration = marqueeSpeed / 1000 + 's' 123 marqueeList.style.WebkitAnimationDuration = marqueeSpeed / 1000 + 's' 124 125 var paused = jQuery(item).data('paused'); 126 127 if (paused) { 128 marqueeList.onmouseenter = (event) => { 129 event.target.style.animationPlayState = 'paused' 130 event.target.style.WebkitAnimationPlayState = 'paused' 131 } 132 marqueeList.onmouseleave = (event) => { 133 event.target.style.animationPlayState = '' 134 event.target.style.WebkitAnimationPlayState = '' 135 } 136 } 137 138 }) 139 } 140
141 function init() { 142 143 g_marquee = marquee; 144 145 cloneSlider() 146 cloneSlider() 147 setWidth() 148 wrapSlides() 149 setAnimationOptions() 150 151 152 var width = jQuery(window).width(); 153 154 window.addEventListener('resize', function() { 155 156 if (jQuery(this).width() != width) { 157 158 width = jQuery(this).width(); 159 160 setWidth() 161 162 } 163 164 }) 165 } 166 167 init() 168}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.