Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Emerson001

Offcanvas não fecha

Recommended Posts

Olá boa noite

 

Estou com um problema. Template com Gantry, e CMS Joomla. Bom, a template funciona perfeitamente, o pepino apareceu, quando fiz uma onepage com ela. Nesse caso, quando o menu fica em offcanvas, ou sidepanel, ao clicar no link âncora, ele não fecha, nem por decreto. Procurei e encontrei algumas soluções, o problema é que não encontro onde colocar. Sou péssimo em JS e JQuery, e se algum membro puder dar alguma dica, ficaria grato. Aqui abaixo está um código que pode ajudar:

 

((function(){var b=(function(){return !!("ontouchstart" in window);
})(),a=navigator.userAgent.match(/iPad/i)!=null;var c=this.SideMenu=new Class({initialize:function(){this.build();this.mediaQuery(RokMediaQueries.getQuery());
this.attachEvents();this.mediaQuery(RokMediaQueries.getQuery());},build:function(){if(this.toggler){return this.toggler;}this.toggler=new Element("div.gf-menu-toggle").inject(document.body);
this.container=document.getElement(".gf-menu-device-container");this.wrapper=new Element("div.gf-menu-device-container-wrapper").inject(this.container);
this.container=new Element("div.gf-menu-device-wrapper-sidemenu").wraps(this.container);this.menu=document.getElement(".gf-menu");this.originalPosition=this.menu.getParent();
this.open=false;(3).times(function(){new Element("span.icon-bar").inject(this.toggler);},this);this.container.inject(document.body);return this.toggler;
},attachEvents:function(){var e=this.toggler.retrieve("roknavmenu:click",function(f){f.preventDefault().stopPropagation();this.toggle.call(this,f,this.toggler);
}.bind(this));this.toggler.addEvent("click",e);this.touchEvents={click:function(f){f.preventDefault();},touchstart:function(){this.store("touched",true);
},touchcancel:function(f){f.preventDefault();this.store("touched",false);},touchmove:function(){this.store("touched",false);},touchend:function(f){console.log(this);
if(!this.retrieve("touched",false)){f.preventDefault();}else{location.href=this.get("href");}}};try{RokMediaQueries.on("(max-width: 767px)",this.mediaQuery.bind(this));
RokMediaQueries.on("(min-width: 768px)",this.mediaQuery.bind(this));}catch(d){if(typeof console!="undefined"){console.error('Error [Responsive Menu] while trying to add a RokMediaQuery "match" event',d);
}}},attachTouchEvents:function(){if(b&&!a){$$(".responsive-type-panel .item").removeEvents().forEach(function(d){Object.forEach(this.touchEvents,function(f,e){d.addEventListener(e,f,false);
});},this);}},detachTouchEvents:function(){if(b&&!a){$$(".responsive-type-panel .item").forEach(function(d){Object.forEach(this.touchEvents,function(f,e){d.removeEventListener(e,f,false);
});},this);}},toggle:function(d,e){this.container[!this.open?"addClass":"removeClass"]("gf-sidemenu-size-left");document.body[!this.open?"addClass":"removeClass"]("gf-sidemenu-size-marginleft");
e[!this.open?"addClass":"removeClass"]("active");this.open=!this.open;},mediaQuery:function(e){var f=this.menu,d=this.wrapper;if(!f&&!d){return;}if(e!="(min-width: 768px)"&&e!="(max-width: 767px)"){return;
}if(e=="(min-width: 768px)"){f.inject(this.originalPosition);this.detachTouchEvents();this.toggler.setStyle("display","none");}else{f.inject(d);this.attachTouchEvents();
this.toggler.setStyle("display","block");}this.toggler.removeClass("active");}});window.addEvent("domready",function(){this.RokNavMenu=new c();});})());

 

Esse código, está no módulo do menu, e foi o único Js que encontrei. Esse arquivo chama-se responsive.js

 

Obrigado, desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.