1 2if ($(window).width() < 992) { 3 //MOBILE 4 $(function () { 5// Permet de masquer la barre d'adresse 6 window.addEventListener("load", function () { 7 setTimeout(function () { 8 window.scrollTo(0, 1); 9 }, 0); 10 }); 11 12 /************MENU************/ 13// Cache le menu a l'ouverture de la page 14// $('#menuDeroulant').hide(); Olivier : suppression responsive 15// 16// On ajoute a la div #menuDeroulant le menu deroulant existant 17// $('#menuDeroulant').append($('#site_menu_page > ul > li')); 18// 19// On cache le menu a l'ouverture de la page afin de n'avoir que le bouton Menu 20// $('#menuDeroulant').slideUp('fast'); 21 22// gestion de l'animation menu mobile burger ouvert / croix ferme 23 let menuOpen = false; 24 // Si l'on click sur le bouton menu: 25 $('#menuBt').click(function () { 26 //le menu deroulant s'ouvre et se ferme 27 $('#site_menu_page').animate({width:'toggle'},350); 28 29 //on anime l'icone du menu burger 30 if(!menuOpen) { 31 $(this).addClass('openMenu'); 32 menuOpen = true; 33 } else { 34 $(this).removeClass('openMenu'); 35 menuOpen = false; 36 } 37 }); 38 39// Ajout de l'icone pour les sous-menus 40 $('#site_menu_page li ul').each(function (index, value) { 41 // Cas particulier pour les diapo vignette 42 if ($(this).parent().children('span').children('a').attr('title') != 'Références' && $(this).parent().children('span').children('a').attr('title') != 'Réalisations') { 43 $(this).parent().find('a:first .textemenu').after('<span class="iconeMenu chevron"></span>'); 44 } 45 }); 46 47 $('#site_menu_page li ul li ul').each(function (index, value) { 48 // Cas particulier pour les diapo vignette 49 if ($(this).parent().children('button').attr('title') != 'Références' && $(this).parent().children('button').attr('title') != 'Réalisations') { 50 $(this).parent().find('button:first').append('<span class="iconeMenu chevron"></span>'); 51 } 52 }); 53 54 $('#site_menu_page a').click(function () { 55 // Il y a 2 elementParent car il y a plusieurs structure a l'interieur du menu, elementParent pour les titres et elementParent2 pour les sous titres 56 // Cela permet de recuperer les elements ul par rapport a l'element que l'on a selectionné 57 elementParent = $(this).parent().children('ul'); 58 elementParent2 = $(this).parent().parent().children('ul'); 59 60 // Enleve l'id selectedMenu aux autres menus afin d'enlever la couleur sur les elements selectionnés 61 $('#site_menu_page').find('#selectedMenu').removeAttr('id'); 62 // Le boolean a false permet de ne pas ouvrir le lien contenu dans la balise a 63 bool = false;
64 // Si le lien renvoie vers le diapo, on active le lien afin d'acceder au diapo album 65 if ($(this).attr('title') == 'Références' || $(this).attr('title') == 'Réalisatons' || $(this).attr('title') == 'Réalisations') return true; 66 // Si l'on clique sur un des elements du menu et qu'il contient des sous menus, on ouvre/ferme ses sous menus, sinon on ouvre le lien 67 if (elementParent2.length) { 68 elementParent2.slideToggle('slow'); 69 if ($(this).parent().parent('li').attr('id') != 'current') $(this).parent().parent('li').attr('id', 'selectedMenu'); 70 } 71 else if (elementParent.length) { 72 elementParent.slideToggle('slow'); 73 $(this).parent().attr('id', 'selectedMenu'); 74 } 75 // Sinon, l'element sur lequel on a clique n'a pas d'enfant, on rend le lien actif avec le boolean a true 76 else bool = true; 77 return bool; 78 }); 79 80 $('#site_menu_page button').click(function () { 81 // Il y a 2 elementParent car il y a plusieurs structure a l'interieur du menu, elementParent pour les titres et elementParent2 pour les sous titres 82 // Cela permet de recuperer les elements ul par rapport a l'element que l'on a selectionné 83 elementParent = $(this).parent().children('ul'); 84 elementParent2 = $(this).parent().parent().children('ul'); 85 86 // Enleve l'id selectedMenu aux autres menus afin d'enlever la couleur sur les elements selectionnés 87 $('#site_menu_page').find('#selectedMenu').removeAttr('id'); 88 // Le boolean a false permet de ne pas ouvrir le lien contenu dans la balise a 89 bool = false;
90 // Si le lien renvoie vers le diapo, on active le lien afin d'acceder au diapo album 91 if ($(this).attr('title') == 'Références' || $(this).attr('title') == 'Réalisatons' || $(this).attr('title') == 'Réalisations') return true; 92 // Si l'on clique sur un des elements du menu et qu'il contient des sous menus, on ouvre/ferme ses sous menus, sinon on ouvre le lien 93 if (elementParent2.length) { 94 elementParent2.slideToggle('slow'); 95 if ($(this).parent().parent('li').attr('id') != 'current') $(this).parent().parent('li').attr('id', 'selectedMenu'); 96 } 97 else if (elementParent.length) { 98 elementParent.slideToggle('slow'); 99 $(this).parent().attr('id', 'selectedMenu'); 100 } 101 // Sinon, l'element sur lequel on a clique n'a pas d'enfant, on rend le lien actif avec le boolean a true 102 else bool = true; 103 return bool; 104 }); 105 // Si le contenu de la page est vide, on ouvre le menu 106 if ($.trim($('#site_page_texte').html()) == "") { 107 $('#site_menu_page').slideToggle('fast'); 108 } 109 110 //fonction pour compter les click appels et les enregistrer en BDD 111 $("#numerotelephone_mobile span").click(function() { 112 var proId = $(this).attr("data-proid"); 113 $.ajax({ 114 data: {proId:proId, click:1}, 115 type: 'POST', 116 url: '/docs/pageprodata.php' 117 }); 118 }); 119 120 $("#numerotelephone_mobile_infos span").click(function() { 121 var proId = $(this).attr("data-proid"); 122 $.ajax({ 123 data: {proId:proId, click:1}, 124 type: 'POST', 125 url: '/docs/pageprodata.php' 126 }); 127 }); 128 129 $("#telmobile_imgaccueil").click(function() { 130 var proId = $(this).attr("data-proid"); 131 $.ajax({ 132 data: {proId:proId, clickimg:1}, 133 type: 'POST', 134 url: '/docs/pageprodata.php' 135 }); 136 }); 137 /****************************/ 138 139// Suppression de l'attribut colspan pour la page panier 140//$('#site_page_texte td').removeAttr('colspan'); 141// Suppression de l'attribut 'value' de l'input Supprimer de la page panier 142 $('.produit_panier input[type=submit]').attr('value', ''); 143 144 }); 145} 146 147 148function initMenu ( numMenuDeroulant ) { 149 var menu = $('#menuDeroulant'+numMenuDeroulant); 150 var lis = $('#menuDeroulant'+numMenuDeroulant +' li'); 151 152 var typeMenu = window.getComputedStyle(document.querySelector('#site_menu_page'), ':after').getPropertyValue('content'); 153 if(typeMenu == '"vertical"'){ 154 initMenuVertical(menu); 155 return; 156 } 157 158 if ( menu.attr('class') != 'menuDeroulantHorizontal' ) { 159 menu.removeClass().addClass("menuDeroulant"); 160 } 161 else { 162 menu.removeClass().addClass("menuDeroulantHorizontal"); 163 } 164 165 166 var id = 0; 167 //On parcourt tout les lis du menu 168 lis.each(function(){ 169 //Si il y a un sous menu (ul), on lui ajoute la detection des evenements 170 if($(this).children('ul')){ 171 $(this).mouseenter(afficherSousMenu); 172 $(this).focus(afficherSousMenu); 173 $(this).mouseleave(cacherSousMenu); 174 $(this).blur(cacherSousMenu); 175 176 //On lui ajoute un ID 177 $(this).attr('id', 'li'+(id)); 178 id++; 179 } 180 }); 181 182 183 /* 184 //On parcourt tout les lis du menu 185 for ( var i=0; i<lis.size(); i++ ) { 186 //Si il y a un sous menu (ul), on lui ajoute la detection des evenements 187 if ( lis.eq(i).children('ul') ) { 188 lis.eq(i).mouseenter(afficherSousMenu); 189 lis.eq(i).focus(afficherSousMenu); 190 lis.eq(i).mouseleave(cacherSousMenu); 191 lis.eq(i).blur(cacherSousMenu); 192 193 //On lui ajoute un ID 194 lis.eq(i).attr('id', 'li'+i); 195 } 196 }*/ 197} 198 199// hide the first ul element of the current element 200function cacherSousMenu () { 201 $(this).children('ul').css({ 202 'visibility': 'hidden', 203 'opacity': '0', 204 'transition': '1s opacity' 205 }); 206} 207 208// show the first ul element found under this element 209function afficherSousMenu () { 210 var screenWidth = $(window).width(); 211 212 var ul = $(this).children('ul'); 213 214 if(ul.length > 0){ 215 var width = ul.width(); 216 var left = ul.offset().left; 217 218 ul.css({ 219 'visibility': 'visible', 220 'opacity': '1', 221 'transition': '1s opacity' 222 }); 223 224 if(width + left > screenWidth){ 225 ul.css({ 226 'right': 0, 227 'margin-right': $(this).parents('li').length == 0 ? 0 : $(this).width() 228 }); 229 } 230 } 231 232 // right: 0 233 234 var currentNode=this; 235 236 while(currentNode) { 237 // if( currentNode.nodeName=='LI') { 238 // currentNode.getElementsByTagName('a')[0].className = 'linkOver'; 239 // } 240 currentNode=currentNode.parentNode; 241 } 242} 243 244function initMenuVertical(menu){ 245 menu.find('ul').hide(); 246 menu.find('ul').addClass('masquer'); 247 248 menu.find('a').click(function(event){ 249 var parent = $(this).parent().is('li') ? $(this).parent() : $(this).parent().parent(); 250 251 if(parent.find('ul').length > 0){ 252 event.preventDefault(); 253 254 parent.children('ul').removeClass('masquer'); 255 256 parent.children('ul').css({ 257 visibility: 'visible', 258 opacity: 1 259 }); 260 261 var autres = menu.find('ul.masquer'); 262 autres.animate({width:'hide'},600); 263 264 parent.children('ul').animate({width:'toggle'},600); 265 /* parent.children('ul').slideToggle(); */ 266 parent.children('ul').addClass('masquer'); 267 } 268 }); 269 270} 271 272/* script pour nouvelle charte graphique pour changement de menu au scroll */ 273/* (Ne s'applique QUE sur la page accueil)*/ 274 275if ($(window).width() > 991) { 276 //ecran 277 $(function () { 278 //selection des elements de la page d'accueil concernés (logo, menu et sous menus) 279 let entete = $('#site_contenu.enteteaccueil #site_entete'); 280 let menu = $('#site_contenu.enteteaccueil #site_menu_page'); 281 let logo = $('#site_contenu.enteteaccueil #site_logo a'); 282 let sousmenu = $('#site_contenu.enteteaccueil #site_menu_page ul.menuDeroulantHorizontal li ul li a, #site_contenu.enteteaccueil #site_menu_page ul.menuDeroulantHorizontal li ul li button'); 283 let positionTop = $(window).scrollTop(); 284 285 //par defaut, on leur applique la class contenuproaccueil si on est en haut de page (background transparent et logo grande taille) 286 if ( positionTop < 100) { 287 entete.addClass('contenuproaccueil'); 288 menu.addClass('contenuproaccueil'); 289 logo.addClass('contenuproaccueil'); 290 sousmenu.addClass('contenuproaccueil'); 291 } 292 293 //en fonction du scroll, on enlève ou rajoute la class pour varier entre le menu sur diapo et le menu classique 294 $(window).scroll(function() { 295 var scrollTop = $(window).scrollTop(); 296 if ( scrollTop > 60) { 297 entete.removeClass('contenuproaccueil'); 298 menu.removeClass('contenuproaccueil'); 299 logo.removeClass('contenuproaccueil'); 300 sousmenu.removeClass('contenuproaccueil'); 301 } else { 302 entete.addClass('contenuproaccueil'); 303 menu.addClass('contenuproaccueil'); 304 logo.addClass('contenuproaccueil'); 305 sousmenu.addClass('contenuproaccueil'); 306 } 307 }); 308 309 }); 310} 311 312
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.