1window.addEventListener('DOMContentLoaded', function () { 2 3 /* 4 * Smooth Sroll 5 */ 6 const ankers = document.querySelectorAll('a[href^="#"]:not([href^="http"]):not([href$="#"])'); 7 ankers.forEach(function (anker) { 8 anker.addEventListener('click', function (event) { 9 event.preventDefault(); 10 const element = event.currentTarget; 11 if (location.pathname.replace(/^\//, '') === element.pathname.replace(/^\//, '') 12 && location.hostname === element.hostname 13 && element.dataset.toggle === undefined 14 && element.dataset.slide === undefined) { 15 let target = document.querySelectorAll(element.hash.replace(/(:|\.|\[|\]|,|=|\/)/g, '\\$1')); 16 target = target.length && target || document.querySelectorAll('[name=' + element.hash.slice(1) + ']'); 17 if (target.length) { 18 let targetOffset = target[0].getBoundingClientRect().top + window.scrollY; 19 const navbar = document.querySelector('.navbar-fixed-top'); 20 if (navbar && targetOffset !== 0) { 21 targetOffset -= navbar.getBoundingClientRect().height; 22 } 23 scroll({ 24 top: targetOffset, 25 behavior: "smooth" 26 }); 27 return false; 28 } 29 } 30 }); 31 }); 32 33 /* 34 * Scroll to top 35 */ 36 document.querySelector('.scroll-top').addEventListener('click', function (event) { 37 event.currentTarget.blur(); 38 }); 39 40 window.addEventListener('scroll', function (event) { 41 if (window.scrollY > 300) { 42 document.querySelector('.scroll-top').classList.add('scroll-top-visible'); 43 } else { 44 document.querySelector('.scroll-top').classList.remove('scroll-top-visible'); 45 } 46 }); 47 48});
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.