Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Ajuste no código do menu
2 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Ajuste no código do menu
Detalhes da questão
Endereço do fórum: https://soulfulbrmusic.forumeiros.com/
Versão do fórum: ModernBB
Descrição
Olá, como estão? bem gostaria de um auxílio.
Eu coloquei um menu no estilo do Google no meu fórum, porém a busca não funciona bem como o menu permanece pouco tempo "aberto" para inserir a pesquisa
O JavaScript é esse, com investimento em todas as páginas
- Código:
var BaseMenu = (function(){
var el, trigger, menu, isMenuOpen;
var _init,
_initEvents,
_openIconMenu,
_closeIconMenu,
_openMenu,
_closeMenu,
_setMenuElement;
_init = function() {
trigger = el.querySelector('a.gn-icon-menu');
menu = el.querySelector('nav.gn-menu-wrapper');
isMenuOpen = false;
_initEvents();
};
_initEvents = function() {
trigger.addEventListener( 'mouseover', function(ev) { _openIconMenu(); } );
trigger.addEventListener( 'mouseout', function(ev) { _closeIconMenu(); } );
menu.addEventListener('mouseover', function(ev) {
_openMenu();
console.log("add click to close");
document.addEventListener('click',BaseMenu.bodyClickFn);
});
};
_openIconMenu = function() {
$(menu).addClass('gn-open-part');
};
_closeIconMenu = function() {
$(menu).removeClass('gn-open-part');
};
_openMenu = function() {
if( isMenuOpen ) return;
$(trigger).addClass('gn-selected');
isMenuOpen = true;
$(menu).addClass('gn-open-all');
_closeIconMenu();
};
_closeMenu = function() {
if( !isMenuOpen ) return;
$(trigger).removeClass('gn-selected');
isMenuOpen = false;
$(menu).removeClass('gn-open-all');
_closeIconMenu();
};
_setMenuElement = function(e) {
el = e;
};
return {
gnMenu: function(element) {
_setMenuElement(element);
_init();
},
bodyClickFn: function() {
_closeMenu();
console.log("click to close");
document.removeEventListener('click',BaseMenu.bodyClickFn);
}
};
})();
$(document).ready(function() {
BaseMenu.gnMenu(document.getElementById('gn-menu'));
});
Agradeço desde já.
Última edição por Harleen em 18.10.17 2:12, editado 3 vez(es)
Re: Ajuste no código do menu
Olá novamente,
Troque o JS por este:
o/
Troque o JS por este:
- Código:
var BaseMenu = (function(){
var el, trigger, menu, isMenuOpen;
var _init,
_initEvents,
_openIconMenu,
_closeIconMenu,
_openMenu,
_closeMenu,
_setMenuElement;
_init = function() {
trigger = el.querySelector('a.gn-icon-menu');
menu = el.querySelector('nav.gn-menu-wrapper');
isMenuOpen = false;
_initEvents();
};
_initEvents = function() {
trigger.addEventListener( 'mouseover', function(ev) { _openIconMenu(); } );
trigger.addEventListener( 'mouseout', function(ev) { _closeIconMenu(); } );
menu.addEventListener('mouseover', function(ev) {
_openMenu();
console.log("add click to close");
document.addEventListener('click',BaseMenu.bodyClickFn);
});
};
_openIconMenu = function() {
$(menu).addClass('gn-open-part');
};
_closeIconMenu = function() {
$(menu).removeClass('gn-open-part');
};
_openMenu = function() {
if( isMenuOpen ) return;
$(trigger).addClass('gn-selected');
isMenuOpen = true;
$(menu).addClass('gn-open-all');
_closeIconMenu();
};
_closeMenu = function() {
if( !isMenuOpen ) return;
if ($('.gn-search').is(':focus')) return;
$(trigger).removeClass('gn-selected');
isMenuOpen = false;
$(menu).removeClass('gn-open-all');
_closeIconMenu();
};
_setMenuElement = function(e) {
el = e;
};
return {
gnMenu: function(element) {
_setMenuElement(element);
_init();
},
bodyClickFn: function() {
_closeMenu();
console.log("click to close");
document.removeEventListener('click',BaseMenu.bodyClickFn);
}
};
})();
$(document).ready(function() {
BaseMenu.gnMenu(document.getElementById('gn-menu'));
});
o/
Re: Ajuste no código do menu
Oi Luiz, deu certo porém a busca não funciona, tem como funcionar? se não eu dou o meu jeito.
Muito obrigada
Muito obrigada
Re: Ajuste no código do menu
Oi Luiz, o HTML que estou usando, eu substitui o original por esse.
Estarei no aguardo e mais uma vez obrigada.
Aqui está o template completo caso necessite
Editado 23:10:49 17.10.2017
Desisti da função de busca, irei usar a da barra forumeiros, ou outro de alguma questão já resolvida aqui.
Muito obrigada pela atenção, irei marcar a questão como resolvida.
- Código:
<div class="container">
<ul id="gn-menu" class="gn-menu-main">
<li class="gn-trigger">
<a class="gn-icon gn-icon-menu"><span>Menu</span></a>
<nav class="gn-menu-wrapper">
<div class="gn-scroller">
<ul class="gn-menu">
<li class="gn-search-item">
<input placeholder="Buscar" type="search" class="gn-search"/>
<a href="/search" class="gn-icon gn-icon-search"><span>Buscar</span></a>
</li>
<li><a href="/" class="gn-icon gn-icon-home">Início</a></li>
<li><a href="/faq" class="gn-icon gn-icon-faq">FAQ</a></li>
<li><a href="/memberlist" class="gn-icon gn-icon-member">Membros</a></li>
<li><a href="/groups" class="gn-icon gn-icon-group">Grupos</a></li>
<li><a class="gn-icon gn-icon-archive">Arquivos</a>
<ul class="gn-submenu">
<li><a href="/publi" class="gn-icon gn-icon-article">Artigos</a></li>
<li><a href="/events" class="gn-icon gn-icon-event">Eventos</a></li>
</ul>
</li>
<!-- BEGIN switch_user_logged_in -->
<li><a href="/profile?mode=editprofile" class="gn-icon gn-icon-profile">Perfil</a></li>
<li><a href="/privmsg?folder=inbox" class="gn-icon gn-icon-mp">MP's</a></li>
<li><a href="/login?logout=1" class="gn-icon gn-icon-sing-out">Sair</a></li>
<!-- END switch_user_logged_in -->
<!-- BEGIN switch_user_logged_out -->
<li><a href="/register" class="gn-icon gn-icon-conect">Cadastrar-se</a></li>
<li><a href="/login" class="gn-icon gn-icon-login">Entrar</a></li>
<!-- END switch_user_logged_out -->
</ul>
</div><!-- /gn-scroller -->
</nav>
</li>
</ul>
</div><!-- /container -->
Estarei no aguardo e mais uma vez obrigada.
Aqui está o template completo caso necessite
- Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" id="min-width" lang="{L_LANG_HTML}" xml:lang="{L_LANG_HTML}" {NAMESPACE_FB_LIKE} {NAMESPACE_FB} {NAMESPACE_BBCODE}>
<head>
<title>{SITENAME_TITLE}{PAGE_TITLE}</title>
<meta http-equiv="content-type" content="text/html; charset={S_CONTENT_ENCODING}" />
<meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="content-style-type" content="text/css" />
<!-- BEGIN switch_compat_meta -->
<meta http-equiv="X-UA-Compatible" content="IE={switch_compat_meta.VERSION}" />
<!-- END switch_compat_meta -->
<!-- BEGIN switch_canonical_url -->
<link rel="canonical" href="{switch_canonical_url.CANONICAL_URL}" />
<!-- END switch_canonical_url -->
{META_FAVICO}
{META}
{META_FB_LIKE}
<meta name="title" content="{SITENAME_TITLE}{PAGE_TITLE}" />
{T_HEAD_STYLESHEET}
{CSS}
<link href="https://fonts.googleapis.com/css?family=Lato:400,700,900|Montserrat:300,400,700,900|Roboto:400,700|Ubuntu:400,500,700" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous" />
<link rel="search" type="application/opensearchdescription+xml" href="/improvedsearch.xml" title="{SITENAME}" />
<link rel="search" type="application/opensearchdescription+xml" href="{URL_BOARD_DIRECTORY}/search/improvedsearch.xml" title="{SEARCH_FORUMS}" />
<script src="{JQUERY_PATH}" type="text/javascript"></script>
<!-- BEGIN switch_recent_jquery -->
<script src="{JS_DIR}jquery1.9/jquery-migrate-1.4.1.js" type="text/javascript"></script>
<script src="{JQUERY_DIR}browser/v1.0/jquery.browser.min.js" type="text/javascript"></script>
<script src="{JQUERY_DIR}support/jquery.support.js" type="text/javascript"></script>
<!-- END switch_recent_jquery -->
<script src="{JS_DIR}{L_LANG}.js" type="text/javascript"></script>
{RICH_SNIPPET_GOOGLE}
<!-- BEGIN switch_fb_login -->
<script src="https://connect.facebook.net/{switch_fb_login.FB_LOCAL}/all.js" type="text/javascript"></script>
<script src="{switch_fb_login.JS_FB_LOGIN}" type="text/javascript"></script>
<!-- END switch_fb_login -->
<!-- BEGIN switch_ticker -->
<link type="text/css" rel="stylesheet" href="{JQUERY_DIR}ticker/ticker.css" />
<script src="{JQUERY_DIR}ticker/ticker.js" type="text/javascript"></script>
<!-- END switch_ticker -->
<!-- BEGIN switch_ticker_new -->
<script src="{JQUERY_DIR}jcarousel/jquery.jcarousel.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
/* Definir le sens de direction en fonction du panneau admin */
var tickerDirParam = "{switch_ticker.DIRECTION}";
var slid_vert = false;
var auto_dir = 'next';
var h_perso = parseInt({switch_ticker.HEIGHT});
switch( tickerDirParam )
{
case 'top' :
slid_vert = true;
break;
case 'left':
break;
case 'bottom':
slid_vert = true;
auto_dir = 'prev';
break;
case 'right':
auto_dir = 'prev';
break;
default:
slid_vert = true;
}
$(document).ready(function() {
$('#fa_ticker_content').css('display','block');
var width_max = $('ul#fa_ticker_content').width();
var width_item = Math.floor(width_max / {switch_ticker.SIZE});
if (width_max > 0)
{
$('ul#fa_ticker_content li').css('float','left').css('list-style','none').width(width_item).find('img').each(function () {
if ($(this).width() > width_item)
{
var ratio = $(this).width() / width_item;
var new_height = Math.round($(this).height() / ratio);
$(this).height(new_height).width(width_item);
}
});
if (slid_vert)
{
var height_max = h_perso;
$('ul#fa_ticker_content li').each( function () {
if ($(this).height() > height_max)
{
height_max = $(this).height();
}
} );
$('ul#fa_ticker_content').width(width_item).height(height_max).css('marginLeft','auto').css('marginRight','auto');
$('ul#fa_ticker_content li').height(height_max);
}
$('#fa_ticker_content').jcarousel({
vertical: slid_vert,
wrap: 'circular',
auto: {switch_ticker.STOP_TIME},
auto_direction: auto_dir,
scroll: 1,
size: {switch_ticker.SIZE},
height_max: height_max,
animation: {switch_ticker.SPEED}
});
}
else
{
$('ul#fa_ticker_content li:not(:first)').css('display','none');
$('ul#fa_ticker_content li:first').css('list-style','none').css('text-align','center');
}
});
//]]>
</script>
<!-- END switch_ticker_new -->
<script type="text/javascript">//<![CDATA[
$(document).ready(function(){
<!-- BEGIN switch_enable_pm_popup -->
pm = window.open('{U_PRIVATEMSGS_POPUP}', '_faprivmsg', 'HEIGHT=225,resizable=yes,WIDTH=400');
if(pm != null) { pm.focus(); }
<!-- END switch_enable_pm_popup -->
<!-- BEGIN switch_report_popup -->
report = window.open('{switch_report_popup.U_REPORT_POPUP}', '_phpbbreport', 'HEIGHT={switch_report_popup.S_HEIGHT},resizable=yes,scrollbars=no,WIDTH={switch_report_popup.S_WIDTH}');
if(report != null) { report.focus(); }
<!-- END switch_report_popup -->
<!-- BEGIN switch_ticker -->
$(document).ready(function() {
Ticker.start({
height : {switch_ticker.HEIGHT},
spacing : {switch_ticker.SPACING},
speed : {switch_ticker.SPEED},
direction : '{switch_ticker.DIRECTION}',
pause : {switch_ticker.STOP_TIME}
});
});
<!-- END switch_ticker -->
});
<!-- BEGIN switch_login_popup -->
var logInPopUpLeft, logInPopUpTop, logInPopUpWidth = {LOGIN_POPUP_WIDTH}, logInPopUpHeight = {LOGIN_POPUP_HEIGHT}, logInBackgroundResize = true, logInBackgroundClass = false;
$(document).ready( function() {
$(window).resize(function() {
var windowWidth = document.documentElement.clientWidth;
var popupWidth = $("#login_popup").width();
var mypopup = $("#login_popup");
$("#login_popup").css({
"left": windowWidth/2 - popupWidth/2
});
});
});
<!-- END switch_login_popup -->
//]]>
</script>
{GREETING_POPUP}
<style type="text/css">
#page-footer, div.navbar, div.navbar ul.linklist {
display: block !important;
}
ul.linklist li.rightside, ul.linklist li.rightside a.copyright {
display: inline !important;
}
<!-- BEGIN switch_ticker_new -->
.jcarousel-skin-tango .jcarousel-item {
text-align:center;
width: 10px;
}
.jcarousel-skin-tango .jcarousel-item-horizontal {
margin-right: {switch_ticker.SPACING}px;
}
.jcarousel-skin-tango .jcarousel-item-vertical {
margin-bottom: {switch_ticker.SPACING}px;
}
<!-- END switch_ticker_new -->
</style>
{HOSTING_JS}
<!-- BEGIN google_analytics_code -->
<script type="text/javascript">
//<![CDATA[
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{G_ANALYTICS_ID}', 'auto');
<!-- BEGIN google_analytics_code_bis -->
ga('create', '{G_ANALYTICS_ID_BIS}', 'auto', 'bis');
<!-- END google_analytics_code_bis -->
ga('send', 'pageview');
<!-- BEGIN google_analytics_code_bis -->
ga('bis.send', 'pageview');
<!-- END google_analytics_code_bis -->
//]]>
</script>
<!-- END google_analytics_code -->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,500,700,700i&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese" rel="stylesheet" />
<link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" />
</head>
<body id="modernbb">
<!-- BEGIN hitskin_preview -->
<div id="hitskin_preview" style="display: block;">
<h1><img src="{hitskin_preview.PATH_IMG_FA}hitskin/hitskin_logo.png" alt="" /> <em>Hit</em>skin.com</h1>
<div class="content">
<p>
{hitskin_preview.L_THEME_SITE_PREVIEW}
<br />
<span>{hitskin_preview.U_INSTALL_THEME}<a href="https://{hitskin_preview.U_RETURN_THEME}">{hitskin_preview.L_RETURN_THEME}</a></span>
</p>
</div>
</div>
<!-- END hitskin_preview -->
<!-- BEGIN switch_login_popup -->
<div id="login_popup" style="z-index: 10000 !important;">
<div class="h3">{SITENAME}</div>
<div id="login_popup_message">
{LOGIN_POPUP_MSG}
</div>
<div id="login_popup_buttons">
<form action="{S_LOGIN_ACTION}" method="get">
<input type="submit" class="button1" value="{L_LOGIN}" />
<input type="button" class="button1" value="{L_REGISTER}" onclick="parent.location='{U_REGISTER}';" />
<input id="login_popup_close" type="button" class="button2" value="{L_DONT_DISPLAY_AGAIN}" />
</form>
</div>
</div>
<!-- END switch_login_popup -->
<a id="top" name="top" accesskey="t"></a>
{JAVASCRIPT}
<div id="page-header">
<div class="headerbar">
<div id="headerbar-top">
<div class="wrap">
<a href="{U_INDEX}" id="logo"><img src="{LOGO}" alt="{L_INDEX}" /></a>
<div class="container">
<ul id="gn-menu" class="gn-menu-main">
<li class="gn-trigger">
<a class="gn-icon gn-icon-menu"><span>Menu</span></a>
<nav class="gn-menu-wrapper">
<div class="gn-scroller">
<ul class="gn-menu">
<li class="gn-search-item">
<input placeholder="Buscar" type="search" class="gn-search"/>
<a href="/search" class="gn-icon gn-icon-search"><span>Buscar</span></a>
</li>
<li><a href="/" class="gn-icon gn-icon-home">Início</a></li>
<li><a href="/faq" class="gn-icon gn-icon-faq">FAQ</a></li>
<li><a href="/memberlist" class="gn-icon gn-icon-member">Membros</a></li>
<li><a href="/groups" class="gn-icon gn-icon-group">Grupos</a></li>
<li><a class="gn-icon gn-icon-archive">Arquivos</a>
<ul class="gn-submenu">
<li><a href="/publi" class="gn-icon gn-icon-article">Artigos</a></li>
<li><a href="/events" class="gn-icon gn-icon-event">Eventos</a></li>
</ul>
</li>
<!-- BEGIN switch_user_logged_in -->
<li><a href="/profile?mode=editprofile" class="gn-icon gn-icon-profile">Perfil</a></li>
<li><a href="/privmsg?folder=inbox" class="gn-icon gn-icon-mp">MP's</a></li>
<li><a href="/login?logout=1" class="gn-icon gn-icon-sing-out">Sair</a></li>
<!-- END switch_user_logged_in -->
<!-- BEGIN switch_user_logged_out -->
<li><a href="/register" class="gn-icon gn-icon-conect">Cadastrar-se</a></li>
<li><a href="/login" class="gn-icon gn-icon-login">Entrar</a></li>
<!-- END switch_user_logged_out -->
</ul>
</div><!-- /gn-scroller -->
</nav>
</li>
</ul>
</div><!-- /container -->
</div>
</div>
<div class="wrap">
<div id="site-desc">
<!-- BEGIN switch_h1 -->
<div id="site-title">{switch_h1.MAIN_SITENAME}</div>
<!-- END switch_h1 -->
<!-- BEGIN switch_desc -->
<p>{switch_desc.SITE_DESCRIPTION}</p>
<!-- END switch_desc -->
</div>
</div>
</div>
<!-- BEGIN switch_ticker_new -->
<div id="fa_ticker_blockD" style="margin-top:4px;">
<div class="module">
<div class="inner">
<div id="fa_ticker_container">
<ul id="fa_ticker_content" class="jcarousel-skin-tango" style="display:none">
<!-- BEGIN ticker_row -->
<li>{switch_ticker.ticker_row.ELEMENT}</li>
<!-- END ticker_row -->
</ul>
</div>
</div>
</div>
</div>
<!-- END switch_ticker_new -->
</div>
<div class="conteneur_minwidth_IE">
<div class="conteneur_layout_IE">
<div class="conteneur_container_IE">
<div id="wrap">
<div id="page-body">
<!-- BEGIN switch_ticker -->
<div id="fa_ticker_block" style="margin-top:4px;">
<div class="module">
<div class="inner">
<div id="fa_ticker_container">
<div id="fa_ticker" style="height:{switch_ticker.HEIGHT}px;">
<div class="fa_ticker_content">
<!-- BEGIN ticker_row -->
<div>{switch_ticker.ticker_row.ELEMENT}</div>
<!-- END ticker_row -->
</div>
</div>
</div>
</div>
</div>
</div>
<!-- END switch_ticker -->
<div id="{ID_CONTENT_CONTAINER}"{CLASS_CONTENT_CONTAINER}>
<div id="outer-wrapper">
<div id="wrapper">
<div id="{ID_LEFT}">
<!-- BEGIN giefmod_index1 -->
{giefmod_index1.MODVAR}
<!-- BEGIN saut -->
<div style="height:{SPACE_ROW}px"></div>
<!-- END saut -->
<!-- END giefmod_index1 -->
</div>
<div id="container">
<div id="content-main">
<div id="main">
<div id="main-content">
Editado 23:10:49 17.10.2017
Desisti da função de busca, irei usar a da barra forumeiros, ou outro de alguma questão já resolvida aqui.
Muito obrigada pela atenção, irei marcar a questão como resolvida.
Re: Ajuste no código do menu
Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada. Tópico marcado como Resolvido e movido para Questões resolvidas. |
Tópicos semelhantes
» Ajuste de Código
» Ajuste no seguinte código:
» Ajuste em código de AddClass
» Ajuste em código de barra de votos
» Ajuste no menu/espaçamento
» Ajuste no seguinte código:
» Ajuste em código de AddClass
» Ajuste em código de barra de votos
» Ajuste no menu/espaçamento
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos