Ajuste no código do menu

2 participantes

Ir para baixo

Tópico resolvido Ajuste no código do menu

Mensagem por Harleen 17.10.17 0:41

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)
Harleen
Harleen
Super Membro

Membro desde : 09/07/2012
Mensagens : 1779
Pontos : 2373

https://antenadogames.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste no código do menu

Mensagem por Luiz 17.10.17 0:46

Olá novamente, Rosa

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/
Luiz
Luiz
Membro Entusiasta

Membro desde : 23/04/2016
Mensagens : 6645
Pontos : 7451

https://luizfelipe.dev

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste no código do menu

Mensagem por Harleen 17.10.17 0:51

Oi Luiz, deu certo Muito feliz porém a busca não funciona, tem como funcionar? se não eu dou o meu jeito.

Muito obrigada Amigos
Harleen
Harleen
Super Membro

Membro desde : 09/07/2012
Mensagens : 1779
Pontos : 2373

https://antenadogames.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste no código do menu

Mensagem por Luiz 17.10.17 16:21

Qual o HTML que a senhora está usando? o/
Luiz
Luiz
Membro Entusiasta

Membro desde : 23/04/2016
Mensagens : 6645
Pontos : 7451

https://luizfelipe.dev

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste no código do menu

Mensagem por Harleen 17.10.17 16:40

Oi Luiz, o HTML que estou usando, eu substitui o original por esse.

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&amp;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.
Harleen
Harleen
Super Membro

Membro desde : 09/07/2012
Mensagens : 1779
Pontos : 2373

https://antenadogames.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste no código do menu

Mensagem por Luiz 18.10.17 16:36

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.
Tópico marcado como Resolvido e movido para Questões resolvidas.
Luiz
Luiz
Membro Entusiasta

Membro desde : 23/04/2016
Mensagens : 6645
Pontos : 7451

https://luizfelipe.dev

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos