/* JavaScript Document script per tutti i menu caricati in defer quando si usa il jquery $(document).ready() si usa il defer */ /* INIZIO MENU CONTENTUALE */ var $JQMenuContentuale= jQuery.noConflict(); $JQMenuContentuale(document).ready(function (){ $JQMenuContentuale("nav.menu-verticale-dipendedasezione").each(function(){ let moduloMenu=$JQMenuContentuale(this).attr("data-moduloMenu"); let paginaDoveSono=$JQMenuContentuale("input[id='phpSelfDoveSono']").val()+"?"+$JQMenuContentuale("input[id='queryStringDoveSono']").val(); let paginaDoveSono2=$JQMenuContentuale("input[id='phpSelfDoveSono2']").val()+"?"+$JQMenuContentuale("input[id='queryStringDoveSono2']").val(); // nel caso di scheda.php let moduloDoveSono=$JQMenuContentuale("input[id='moduloDoveSono']").val(); let array_menu_dedicato_dipendedasezione=new Array() if($JQMenuContentuale("input[id='array_menu_dedicato_dipendedasezione']").val()!="") { array_menu_dedicato_dipendedasezione=$JQMenuContentuale("input[id='array_menu_dedicato_dipendedasezione']").val().split("|") } $JQMenuContentuale("a", $JQMenuContentuale(this)).each(function(){ var trovato=false; let urlPulsante=$JQMenuContentuale(this).attr("data-urlpulsante"); if(urlPulsante==paginaDoveSono || urlPulsante==paginaDoveSono2) { trovato=true; } if(array_menu_dedicato_dipendedasezione.length>0) { $JQMenuContentuale.each(array_menu_dedicato_dipendedasezione, function(indice, valore) { if(urlPulsante==valore) { trovato=true; } }); } if(trovato) { // tendine antenati $JQMenuContentuale(this).parents(".mv-link-sottotasti").each(function(){ $JQMenuContentuale(this).show(); }); // tendina fratello $JQMenuContentuale(this).closest("div").next(".mv-link-sottotasti").show(); } }); }); }); /* FINE MENU CONTENTUALE */ /* INIZIO TASTO ATTIVO MENU */ var $JQMenuTastiAttivi= jQuery.noConflict(); $JQMenuTastiAttivi(document).ready(function (){ $JQMenuTastiAttivi("nav.menu-orizzontale a, nav.menu-burger-nav a, nav.menu-verticale-box a").each(function(){ let protocol = location.protocol; let hostname = location.hostname; let tipoMenu=$JQMenuTastiAttivi(this).closest("nav").attr("data-tipoMenu"); let text=$JQMenuTastiAttivi(this).html(); let href=$JQMenuTastiAttivi(this).attr("href"); let urlPulsante=$JQMenuTastiAttivi(this).attr("data-urlPulsante"); let moduloPulsante=$JQMenuTastiAttivi(this).attr("data-moduloPulsante"); let requestUriDoveSono=$JQMenuTastiAttivi("input[id='requestUriDoveSono']").val(); let moduloDoveSono=$JQMenuTastiAttivi("input[id='moduloDoveSono']").val(); href=href.replace(protocol+"//"+hostname+"/", ""); if(href!="javascript:void(0)") { var pulAttivo=false; if(requestUriDoveSono==href || requestUriDoveSono==urlPulsante) { pulAttivo=true; } else if(urlPulsante=="" && moduloPulsante==moduloDoveSono) { pulAttivo=true; } if(pulAttivo) { var classeTasto=""; if(tipoMenu=="verticale") { classeTasto="tasto-acceso"; } else { let classe=$JQMenuTastiAttivi(this).closest("div,li").attr("class").split(" "); classeTasto=classe[0]+"-attivo"; } $JQMenuTastiAttivi(this).closest("div,li").addClass(classeTasto); } } }); }); /* FINE TASTO ATTIVO MENU */ /* INIZIO APERTURA SOTTITASTI MENU */ var $jQMenuSottoTasti = jQuery.noConflict(); $jQMenuSottoTasti(document).ready(function (index){ /* apertura / chiusura tendina sotto */ $jQMenuSottoTasti(".mv-link-piu, .mv-linkA-piu").click(function(e, first){ e.preventDefault(); var iconaapri="+"; var iconachiudi="-"; if($jQMenuSottoTasti(this).attr("data-apri")) { iconaapri=$jQMenuSottoTasti(this).attr("data-apri"); } if($jQMenuSottoTasti(this).attr("data-chiudi")) { iconachiudi=$jQMenuSottoTasti(this).attr("data-chiudi"); } var display=$jQMenuSottoTasti("+ div.mv-link-sottotasti", $jQMenuSottoTasti(this).parent()).css("display"); $jQMenuSottoTasti("+ div.mv-link-sottotasti", $jQMenuSottoTasti(this).parent()).slideToggle(first ? 0 : 400); if($jQMenuSottoTasti(this).attr("class")=="mv-linkA-piu") { $jQMenuSottoTasti("+ .mv-link-piu", $jQMenuSottoTasti(this)).html(display=="none" ? iconachiudi : iconaapri); /* la variabile dipslay è valorizzata prima del cambiamento, quindi la condizione è al contrario */ } else { $jQMenuSottoTasti(this).html(display=="none" ? iconachiudi : iconaapri); /* la variabile dipslay è valorizzata prima del cambiamento, quindi la condizione è al contrario */ } return false; }); /* posizionamento tendina fianco */ $jQMenuSottoTasti(".mv-tendina").each(function(){ /* cerco la metà del viewport */ var vW=$jQMenuSottoTasti(window).width(); var meta_vW=vW/2; /*cerco la posizione dx finale del tasto */ var offset=$jQMenuSottoTasti(this).closest(".mv-scatola").offset(); var posRight=parseInt(offset.left)+parseInt($jQMenuSottoTasti(this).closest(".mv-scatola").outerWidth(true)); if(posRight>=meta_vW) { /* cerco la posizione sx finale del tasto */ var posLeft=offset.left; /* se il menu è più a destra rispetto alla meta del viewport */ if( (meta_vW-posLeft) < (posRight-meta_vW) ) { $jQMenuSottoTasti(this).addClass("mv-tendina-sx"); } } }); }); /* FINE APERTURA SOTTITASTI MENU */ /* INIZIO MENU BURGER */ var $jQBurgerMenu = jQuery.noConflict(); $jQBurgerMenu(document).ready(function() { if($jQBurgerMenu(".menu-burger-box").length>0) { $jQBurgerMenu(".menu-burger-box").click(function(){ var aperturadirezione=$jQBurgerMenu(this).next().attr("data-aperturadirezione"); if(aperturadirezione=="sxdx" || aperturadirezione=="dxsx") { $jQBurgerMenu(this).next().css({"transform":"translateX(0%)"}); } if(aperturadirezione=="dxsx") { var width=$jQBurgerMenu(this).next().attr("data-width"); $jQBurgerMenu(this).next().css({"left":"calc(100% - "+width+")"}); } else if(aperturadirezione=="altobasso") { $jQBurgerMenu(this).next().css({"transform":"translateY(0%)"}); } }); $jQBurgerMenu(".menu-burger-nav-chiudi").click(function(){ var aperturadirezione=$jQBurgerMenu(this).parent().attr("data-aperturadirezione"); if(aperturadirezione=="sxdx") { var val="translateX(-100vw)"; $jQBurgerMenu(this).parent().css({"transform":"translateX(-100vw)"}); } else if(aperturadirezione=="dxsx") { var val="left%"; $jQBurgerMenu(this).parent().css({"left":"100%"}); } else if(aperturadirezione=="altobasso") { $jQBurgerMenu(this).parent().css({"transform":"translateY(-100vh)"}); } }); $jQBurgerMenu(".menu-burger-nav-tasto-aprichiudi").click(function(e, first){ e.preventDefault(); var iconaapri=$jQBurgerMenu(this).attr("data-apri"); var iconachiudi=$jQBurgerMenu(this).attr("data-chiudi"); var display=$jQBurgerMenu("+ ul.menu-burger-nav-tendina", $jQBurgerMenu(this)).css("display"); $jQBurgerMenu("+ ul.menu-burger-nav-tendina", $jQBurgerMenu(this)).slideToggle(first ? 0 : 400); $jQBurgerMenu(this).html(display=="none" ? iconachiudi : iconaapri); /* la variabile dipslay è valorizzata prima del cambiamento, quindi la condizione è al contrario */ return false; }); } }); /* FINE MENU BURGER */ /* INIZIO MENU ORIZZONTALE */ var $jQOrizzontaleMenu = jQuery.noConflict(); $jQOrizzontaleMenu(document).ready(function() { if( is_touch_device() ) { $jQOrizzontaleMenu("body").click(function(e) { if($jQOrizzontaleMenu(e.target).closest(".menu-orizzontale-tasto").length == 0) { $jQOrizzontaleMenu(".menu-orizzontale-tasto .menu-orizzontale-tendina").css({"display":"none", "visibility":"hidden"}); } }); if($jQOrizzontaleMenu(".menu-orizzontale-tasto .menu-orizzontale-tendina").length>0) { $jQOrizzontaleMenu(".menu-orizzontale-tasto").click(function() { $jQOrizzontaleMenu(".menu-orizzontale-tasto .menu-orizzontale-tendina").css({"display":"none", "visibility":"hidden"}); if($jQOrizzontaleMenu(this).find(".menu-orizzontale-tendina").length>0) { $jQOrizzontaleMenu(this).find(".menu-orizzontale-tendina").css({"display":"block", "visibility":"visible"}); } }); } } if($jQOrizzontaleMenu(".menu-orizzontale-con-blocco").length>0) { $jQOrizzontaleMenu(".menu-orizzontale-con-blocco").each(function(){ var identificatoreMenu=$jQOrizzontaleMenu(this).attr("id"); /* questo serve per riposizionare bene il menu quando non è più in cima al viwevport, altrimenti resterebbe il top associato al blocco-top */ /*larghezza e altezza menu */ var MenuWidth=$jQOrizzontaleMenu("#"+identificatoreMenu).outerWidth(); var MenuMarginLeft=$jQOrizzontaleMenu("#"+identificatoreMenu).css("marginLeft").replace("px", ""); var MenuCssTop=$jQOrizzontaleMenu("#"+identificatoreMenu).css("top"); var MenuCssMargin=$jQOrizzontaleMenu("#"+identificatoreMenu).css("margin"); var MenuCssMarginLeft=$jQOrizzontaleMenu("#"+identificatoreMenu).css("margin-left"); var MenuCssMarginTop=$jQOrizzontaleMenu("#"+identificatoreMenu).css("margin-top"); var MenuCssPosition=$jQOrizzontaleMenu("#"+identificatoreMenu).css("position"); /* serve per capire se è un menu che è già fisso da stile, in questo caso non si fanno operazioni */ var viewportOffsetMenuInit = getViewportOffset($jQOrizzontaleMenu("#ancora-"+identificatoreMenu)); var pcI=getViewportOffset($jQOrizzontaleMenu("#corpo-contenitore")).top; var heightAPA=0; var distanzaTop=0; if($jQOrizzontaleMenu(".box-barra-alta").length>0) { heightAPA= $jQOrizzontaleMenu(".box-barra-alta").outerHeight(true); distanzaTop=heightAPA; } $jQOrizzontaleMenu(window).scroll(function() { if($jQOrizzontaleMenu("#testa").css("position")!="fixed" && MenuCssPosition!="fixed") /* c'è uno stile che ha la testa fissa, questo non va fatto */ { var transition= getTransitionDuration( "#"+identificatoreMenu, true ); $jQOrizzontaleMenu(".menu-orizzontale-blocco-top").css({"transition":"unset"}); /* azzero la transizione per evitare i salti */ transition=0; /* azzero la transizione per evitare i salti */ setTimeout(function() { var viewportOffsetMenuScroll = getViewportOffset($jQOrizzontaleMenu("#"+identificatoreMenu)); var viewportOffsetAncoraMenuScroll=getViewportOffset($jQOrizzontaleMenu("#ancora-"+identificatoreMenu)); /*guardo quando il menu va sotto non il corpo */ if (viewportOffsetMenuScroll.top<=distanzaTop) { if(strpos($jQOrizzontaleMenu("#"+identificatoreMenu).attr("class"), "menu-orizzontale-blocco-top")===false) { $jQOrizzontaleMenu("#"+identificatoreMenu).addClass("menu-orizzontale-blocco-top"); $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"width":MenuWidth+"px"}); $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"margin-left":MenuMarginLeft+"px"}); $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"margin-top": "0"}); /* annullo i margini se ci sono */ $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"margin-top":distanzaTop+"px"}); } viewportOffsetMenuScroll = getViewportOffset($jQOrizzontaleMenu("#"+identificatoreMenu)); /* riprendo la posizione del menu */ if(viewportOffsetMenuScroll.top<=viewportOffsetAncoraMenuScroll.top) { if(strpos ($jQOrizzontaleMenu("#"+identificatoreMenu).attr("class"), "menu-orizzontale-blocco-top")) { $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-left":MenuCssMarginLeft}); if(MenuCssMargin=="auto") { $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin":MenuCssMargin}); } $jQOrizzontaleMenu("#"+identificatoreMenu).css({"top":MenuCssTop}); $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-top":MenuCssMarginTop}); $jQOrizzontaleMenu("#"+identificatoreMenu).css({"z-index":20}); $jQOrizzontaleMenu("#corpo-contenitore").addClass("scorrimento-corpo"); $jQOrizzontaleMenu("#"+identificatoreMenu).removeClass("menu-orizzontale-blocco-top"); $jQOrizzontaleMenu("#corpo-contenitore.scorrimento-corpo").css({"top":"-"+pcI+"px"}); $jQOrizzontaleMenu("#corpo-contenitore").removeClass("scorrimento-corpo"); } } } else { if(strpos ($jQOrizzontaleMenu("#"+identificatoreMenu).attr("class"), "menu-orizzontale-blocco-top")) { $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-left":MenuCssMarginLeft}); if(MenuCssMargin=="auto") { $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin":MenuCssMargin}); } $jQOrizzontaleMenu("#"+identificatoreMenu).css({"top":MenuCssTop}); $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-top":MenuCssMarginTop}); $jQOrizzontaleMenu("#"+identificatoreMenu).css({"z-index":20}); $jQOrizzontaleMenu("#"+identificatoreMenu).removeClass("menu-orizzontale-blocco-top"); } } }, transition); } }); var trovatostesso=false; /*cerco tutti i .menu-orizzontale-con-blocco prima di questo */ $jQOrizzontaleMenu(".menu-orizzontale-con-blocco").each(function(){ if(!trovatostesso) { var identificatoreMenu2=$jQOrizzontaleMenu(this).attr("id"); if(identificatoreMenu2 != identificatoreMenu) { var heightMenu2=$jQOrizzontaleMenu("#"+identificatoreMenu2).outerHeight(true); distanzaTop=distanzaTop+heightMenu2; } if(identificatoreMenu2 == identificatoreMenu) { trovatostesso=true; } } $jQOrizzontaleMenu("#"+identificatoreMenu).attr("data-distanzatop",distanzaTop); if(!$jQOrizzontaleMenu("#"+identificatoreMenu).isInViewport()) { $jQOrizzontaleMenu(window).trigger("scroll"); } }); }); } }); /*FINE MENU ORIZZONTALE */