1function uvUpdateNumbers() { 2 const uvNumbers = document.getElementsByClassName('uv-numbers-item-title'); 3 if (uvNumbers.length > 0) { 4 const uvAnimateNumbers = (start, end) => { 5 for (let i = start; i < end; i++) { 6 let uvNumber = uvNumbers[i]; 7 let uvNumberValue = parseInt(uvNumber.getAttribute('data-number')); //uvNumber.getAttribute('data-number'); 8 let currentNumber = 0; 9 let increment = Math.ceil(uvNumberValue / 100); 10 let icon = uvNumber.querySelector('.icon'); 11 12 if (icon && !icon.classList.contains('uv-icon-animate')) { 13 icon.classList.add('uv-icon-animate'); 14 } 15 16 let interval = setInterval(() => { 17 currentNumber += increment; 18 if (currentNumber >= uvNumberValue) { 19 currentNumber = uvNumberValue; 20 clearInterval(interval); 21 22 if (icon) { 23 icon.classList.remove('uv-icon-animate'); 24 } 25 } 26 uvNumber.innerHTML = currentNumber.toLocaleString(); 27 }, 20); 28 } 29 }; 30 31 uvAnimateNumbers(0, Math.min(3, uvNumbers.length)); 32 33 setTimeout(() => { 34 uvAnimateNumbers(3, uvNumbers.length); 35 }, 1400); 36 } 37} 38 39function uvInitUpdateNumbersOnVisible() { 40 const uvNumbers = document.getElementsByClassName('uv-numbers-item-title'); 41 const observer = new IntersectionObserver((entries, observer) => { 42 entries.forEach(entry => { 43 if (entry.isIntersecting) { 44 uvUpdateNumbers(); 45 observer.unobserve(entry.target); 46 } 47 }); 48 }); 49 50 for (let i = 0; i < uvNumbers.length; i++) { 51 observer.observe(uvNumbers[i]); 52 } 53} 54 55if (typeof (uvDOMReady) === 'function') { 56 uvDOMReady(function () { 57 if (typeof (uvInitUpdateNumbersOnVisible) === 'function') { 58 uvInitUpdateNumbersOnVisible(); 59 } 60 }); 61} else { 62 if (typeof (window.addEventListener) !== 'undefined') { 63 window.addEventListener('load', function () { 64 if (typeof (uvInitUpdateNumbersOnVisible) === 'function') { 65 uvInitUpdateNumbersOnVisible(); 66 } 67 }, false); 68 } else if (typeof (document.addEventListener) !== 'undefined') { 69 document.addEventListener('load', function () { 70 if (typeof (uvInitUpdateNumbersOnVisible) === 'function') { 71 uvInitUpdateNumbersOnVisible(); 72 } 73 }, false); 74 } else if (typeof (window.attachEvent) !== 'undefined') { 75 window.attachEvent('onload', function () { 76 if (typeof (uvInitUpdateNumbersOnVisible) === 'function') { 77 uvInitUpdateNumbersOnVisible(); 78 } 79 }); 80 } 81}
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.