1document.addEventListener('DOMContentLoaded', function() { 2 3 const telLogo = document.querySelector('.tel-logo'); 4 5 6 if (telLogo) { 7 telLogo.addEventListener('mouseover', function() { 8 telLogo.classList.add('active'); 9 10 }); 11 12 telLogo.addEventListener('mouseout', function() { 13 telLogo.classList.remove('active'); 14 }); 15 } 16 17 const button = document.getElementById('backToTopButton'); 18 const circle = button.querySelector('.progress-ring__circle'); 19 const radius = circle.r.baseVal.value; 20 const circumference = radius * 2 * Math.PI; 21 22 circle.style.strokeDasharray = `${circumference} ${circumference}`; 23 circle.style.strokeDashoffset = circumference; 24 25 function setProgress(percent) { 26 const offset = circumference - percent / 100 * circumference; 27 circle.style.strokeDashoffset = offset; 28 } 29 30 window.addEventListener('scroll', function() { 31 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 32 const height = document.documentElement.scrollHeight - window.innerHeight; 33 const scrolled = scrollTop / height; 34 setProgress(scrolled * 100); 35 }); 36 37 button.addEventListener('click', function(event) { 38 event.preventDefault(); 39 window.scrollTo({ 40 top: 0, 41 behavior: 'smooth' 42 }); 43 }); 44 45 const bulleMobile = document.querySelector('.bulle-mobile'); 46 47 if (bulleMobile) { 48 bulleMobile.addEventListener('click', function() { 49 const menu = document.querySelector('.menu-mobile'); 50 if (menu.classList.contains('active')) { 51 menu.classList.add('closing'); 52 menu.addEventListener('animationend', function() { 53 menu.classList.remove('closing'); 54 menu.classList.remove('active'); 55 }, { once: true }); 56 } else { 57 menu.classList.add('active'); 58 } 59 }); 60 } 61 62 const closeMenuMobile = document.querySelector('.close-menu-mobile'); 63 64 if (closeMenuMobile) { 65 closeMenuMobile.addEventListener('click', function() { 66 const menu = document.querySelector('.menu-mobile'); 67 menu.classList.add('closing'); 68 menu.addEventListener('animationend', function() { 69 menu.classList.remove('closing'); 70 menu.classList.remove('active'); 71 }, { once: true }); 72 }); 73 } 74 75 const hash = window.location.hash; 76 if (hash) { 77 const targetElement = document.getElementById(hash.substring(1)); 78 if (targetElement) { 79 window.scrollTo({ 80 top: targetElement.offsetTop, 81 behavior: 'smooth' 82 }); 83 } 84 } 85 86 const cardPresta = document.querySelectorAll('.accompagnement .prestations .card-presta'); 87 88 if(cardPresta) { 89 if(window.innerWidth > 1023) { 90 cardPresta.forEach(card => { 91 card.addEventListener('mouseenter', function() { 92 const flecheText = card.querySelector('.fleche-text'); 93 const trait = card.querySelector('.trait'); 94 trait.style.opacity = 0; 95 setTimeout(() => { 96 trait.style.display = 'none'; 97 flecheText.style.display = 'flex'; 98 card.style.height = '550px'; 99 setTimeout(() => { 100 flecheText.style.opacity = 1; 101 }, 100); 102 }, 100); 103 }); 104 105 card.addEventListener('mouseleave', function() { 106 const flecheText = card.querySelector('.fleche-text'); 107 const trait = card.querySelector('.trait'); 108 flecheText.style.opacity = 0; 109 setTimeout(() => { 110 flecheText.style.display = 'none'; 111 trait.style.display = 'block'; 112 card.style.height = '493px'; 113 setTimeout(() => { 114 trait.style.opacity = 0.5; 115 } ,100); 116 }, 100); 117 118 }); 119 }); 120 } 121 } 122 123 124})
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.