PageSourceSearch

https://www.selonnetchabanon-tourisme.fr/javascripts/dynMenuv2.js?v=20160406

js selonnetchabanon-tourisme.fr collected 2026-10-09 17:09:52 UTC 10,859 bytes, 312 lines download raw bytes

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.