PageSourceSearch

https://martorell.cat/plantilles/martorell/js/responsivemenu.js?v=2

js martorell.cat collected 2026-10-02 06:24:19 UTC 3,478 bytes, 113 lines download raw bytes

1function myResponsiveMenu(id_menu) {
2	// Afegeix has-submenu
3	$("." + id_menu + " ul li:has(ul)").addClass("has-submenu");
4	
5	var launch = false;
6	var $menu = $('.' + id_menu);
7	
8	// Assigna al botó de mòbil la funció per amagar o mostrar el menú
9	$("#boto-menu-mob").click(function (e) {
10		if ($('.' + id_menu).css('display')!='block') {
11			$('.' + id_menu).fadeIn('150');
12		}
13		$('.' + id_menu).toggleClass("menu-visible");
14		$(this).toggleClass("boto-menu-desplegat");
15	});
16	
17	// El contingut dels <a> els posa dins d'un span (pel control de click en mobil)
18	$("." + id_menu + " ul li a").wrapInner("<span />");
19	
20 	// Classe últim per l'últim elements del menú de 1ºnivell
21	$("." + id_menu + ">ul>li:last-child").prev("li").addClass("ultim");
22 
23 	// Event click per visualització de mòbil
24	$("." + id_menu + " .has-submenu > a, ." + id_menu + " .has-submenu > span").on("click", function(e) {
25		if (esmobil($menu)) {
26			if (!launch) {
27				e.preventDefault();
28				
29				$(this).parent().toggleClass('active'); // li
30				$(this).next('i').toggleClass('active'); // i
31				
32				if ($(this).next().next('div').get(0)) {
33					$(this).toggleClass('active').next().next('div').find('div>ul').first().toggleClass('active').fadeIn(300); // a i ul
34				} else {
35					$(this).toggleClass('active').next().next('ul').first().toggleClass('active').fadeIn(300); // a i ul
36				}
37			}
38		}
39	});
40	
41	$("." + id_menu + " .has-submenu > i").on("click", function(e) {
42		if (esmobil($menu)) {
43			if (!launch) {
44				$(this).parent().toggleClass('active'); // li
45				$(this).prev('a,span').toggleClass('active'); // a o span
46				
47				if ($(this).next('div').get(0)) {
48					$(this).toggleClass('active').next('div').find('div>ul').first().toggleClass('active').fadeIn(300); // i i ul
49				} else {
50					$(this).toggleClass('active').next('ul').first().toggleClass('active').fadeIn(300); // a i ul
51				}
52			}
53		}
54	});
55	
56 	// Event click sobre el text en vista móbil
57	$("." + id_menu + " .has-submenu > a > span").click(function(e) {
58		if (esmobil($menu)) {
59			launch = true;
60		}
61	});
62	
63	var $contenidors_li = $("." + id_menu + ">ul>li>div>div>ul").parent().parent().parent();
64	$contenidors_li.each(function(i){
65		$(this).hoverIntent({
66			sensitivity: 2,
67			interval: 100,
68			timeout: 200,
69			over: function(e){
70				if (!esmobil($menu)) {
71					$(this).find("a:first").addClass("hover");
72					
73					var ul = $(this).children("div");
74					
75					// Per calcular l'amplada és necessari que sigui no visible però sense hidden 
76					$(ul).css("visibility", "hidden").css("display", "block");
77					
78					// Calcula i estableix la posició respecte el menú principal
79					var abs_top = $("." + id_menu).offset().top +  $("." + id_menu).outerHeight();
80					
81					console.log(abs_top);
82					console.log($("." + id_menu).offset().top);
83					console.log($("." + id_menu).position().top);
84					
85					var menu_outwidth = $("body").outerWidth();
86					
87					$(ul).offset({ top: abs_top, left: 0}).css("width", menu_outwidth);
88					
89					// Reestableix les propietats hidden i display
90					$(ul).css("display", "none").css("visibility", "visible");
91					
92					// El mostra amb un fadein
93					$(ul).fadeIn(300);
94				}
95			},
96			out: function(e){
97				if (!esmobil($menu)) {
98					$(this).find("a:first").removeClass("hover");
99					
100					$(this).children("div").fadeOut(200, function () {
101					});
102				}
103			}
104		});
105	});
106}
107
108
109function esmobil($menu) {
110	if ($($menu).css("position")=="absolute") {
111		return true;
112	}
113}

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.