Ir ao conteúdo
  • Cadastre-se

Menu Responsivo Dropdown - CSS3/Javascript


Posts recomendados

Meu site está trabalhando com um menu responsivo, e a ideia é adicionar um dropdown para alguns itens do menu.

Com o código que fiz até agora, o menu funciona, mas todas as LI são carregadas, e não apenas as que eu quero..

 

Gostaria da ajuda para fazer com que os <ul> dentro dos <li> só aparecessem caso eu clicasse..

 

HTML:

<div class="rmm">                <ul>                         <li><a href='#link'>link</a>                        <ul class="submenu-1"> <!-- Esse é o 2 nivel ou o primeiro Drop Down -->                                <?php while($row = mysqli_fetch_array($sqlDois)) { ?>                                        <li>                                                <a href="link.php?gid=<?php echo $row['grupo_id']; ?>">                                                        <?php echo $row['grupo_orixas']; ?>                                                </a>                                        </li>                                <?php } ?>                                             </ul>                    </li>                    <li><a href='#link'>linklink</a>                        <ul class="submenu-1"> <!-- Esse é o 2 nivel ou o primeiro Drop Down -->                                <li><a href="link.php">linklink</a></li>                                <li><a href="link.php">link</a></li>                                <li><a href="link.php">link</a></li>                                <li><a href="link.php">link</a></li>                        </ul>                    </li>                    <li><a href='link.php'>link</a></li>                    <li><a href='#link'>Aprendizado</a>                        <ul class="submenu-1"> <!-- Esse é o 2 nivel ou o primeiro Drop Down -->                                <li><a href="textos.php">Textos</a></li>                                <li><a href="dicionario.php">Dicionario</a></li>                        </ul>                    </li>                    <li><a href='fotos.php'>Fotos</a></li>                    <li><a href='link.php'>link</a></li>                                     <li><a href='#link'>Pontos link</a>                        <ul class="submenu-1"> <!-- Esse é o 2 nivel ou o primeiro Drop Down -->                                <?php while($row = mysqli_fetch_array($sql)) { ?>                                        <li>                                                <a href="pontos.php?gid=<?php echo $row['grupo_id']; ?>">                                                        <?php echo $row['grupo_id']; ?>                                                </a>                                        </li>                                <?php } ?>                                             </ul>                    </li>                 </ul>

Segue o CSS

.rmm {	display:none;	position:relative;	width:100%;	padding:0px;	text-align: center;	line-height:19px !important;    padding-bottom:3px;}.rmm * {	-webkit-tap-highlight-color:transparent !important;	font-family:Arial;}.rmm a {	color:white;	text-decoration:none;}.rmm .rmm-main-list, .rmm .rmm-main-list li {	margin:0px;	padding:0px;}.rmm ul {	display:block;	width:auto !important;	margin:0 auto !important;	overflow:hidden;	list-style:none;}/* sublevel menu - in construction */.rmm ul li ul, .rmm ul li ul li, .rmm ul li ul li a {	display:block !important;	height:100% !important;	width:100% !important;}/* */.rmm .rmm-main-list li {	display:inline;	padding:padding:0px;	margin:0px !important;}.rmm-toggled {	display:none;	width:100%;	position:relative;	overflow:hidden;}.rmm-button:hover {	cursor:pointer;}.rmm .rmm-toggled ul {	display:none;	margin:0px !important;	padding:0px !important;}.rmm .rmm-toggled ul li {	display:block;	margin:0 auto !important;}/* GRAPHITE STYLE */.rmm.graphite .rmm-main-list li a {	display:inline-block;	padding:8px 30px 8px 30px;	margin:0px -3px 0px -3px;	font-size:15px;	text-shadow:1px 1px 1px #333333;	background-color:#444444;	border-left:1px solid #555555;	background-image:url('../rmm-img/graphite-menu-bg.png');	background-repeat:repeat-x;}.rmm.graphite .rmm-main-list li a:hover {	background-image:url('../rmm-img/graphite-menu-bg-hover.png');}.rmm.graphite .rmm-main-list li:first-child a {-webkit-border-top-left-radius: 6px;-webkit-border-bottom-left-radius: 6px;-moz-border-radius-topleft: 6px;-moz-border-radius-bottomleft: 6px;border-top-left-radius: 6px;border-bottom-left-radius: 6px;}.rmm.graphite .rmm-main-list li:last-child a {-webkit-border-top-right-radius: 6px;-webkit-border-bottom-right-radius: 6px;-moz-border-radius-topright: 6px;-moz-border-radius-bottomright: 6px;border-top-right-radius: 6px;border-bottom-right-radius: 6px;}.rmm.graphite .rmm-toggled {	width:100%;	background-color:#0260a9;	min-height:36px;}.rmm.graphite .rmm-toggled-controls {	display:block;	height:36px;	color:white;	text-align:left;	position:relative;	background-image:url('../rmm-img/graphite-menu-bg.png');	background-repeat:repeat-x;}.rmm.graphite .rmm-toggled-title {	position:relative;	top:9px;	left:15px;	font-size:16px;	color:white;	text-shadow:1px 1px 1px black;}.rmm.graphite .rmm-button {	display:block;	position:absolute;	right:15px;	top:8px;}.rmm.graphite .rmm-button span {	display:block;	margin-top:4px;	height:2px;	background:white;	width:24px;}.rmm.graphite .rmm-toggled ul li a {	display:block;	width:100%;	background-color:#0260a9;	text-align:center;	padding:10px 0px 10px 0px;	border-top:1px solid white;}/* borda no primeiro LI menu mobile css */.rmm .primeiroLiMenuMobile {    border-top:1px solid white;}.rmm.graphite .rmm-toggled ul li a:active {	background-color:#07a5f2;	border-bottom:1px solid #444444;	border-top:1px solid #444444;}/* SAPPHIRE STYLE */.rmm.sapphire .rmm-main-list li a {	display:inline-block;	padding:8px 30px 8px 30px;	margin:0px -3px 0px -3px;	font-size:15px;	background-color:#537b9f;	border-left:1px solid #3e587b;	background-image:url('../rmm-img/sapphire-menu-bg.png');	background-repeat:repeat-x;}.rmm.sapphire .rmm-main-list li a:hover {	background:#3e597b;}.rmm.sapphire .rmm-main-list li:first-child a {-webkit-border-top-left-radius: 5px;-webkit-border-bottom-left-radius: 5px;-moz-border-radius-topleft: 5px;-moz-border-radius-bottomleft: 5px;border-top-left-radius: 5px;border-bottom-left-radius: 5px;}.rmm.sapphire .rmm-main-list li:last-child a {	-webkit-border-top-right-radius: 5px;-webkit-border-bottom-right-radius: 5px;-moz-border-radius-topright: 5px;-moz-border-radius-bottomright: 5px;border-top-right-radius: 5px;border-bottom-right-radius: 5px;}.rmm.sapphire .rmm-toggled {	width:100%;	background-color:#537b9f;	min-height:36px;}.rmm.sapphire .rmm-toggled-controls {	display:block;	height:36px;	color:white;	text-align:left;	position:relative;	background-image:url('../rmm-img/sapphire-menu-bg.png');	background-repeat:repeat-x;}.rmm.sapphire .rmm-toggled-title {	position:relative;	top:9px;	left:15px;	font-size:16px;	color:white;}.rmm.sapphire .rmm-button {	display:block;	position:absolute;	right:9px;	top:7px;	width:20px;	padding:0px 7px 0px 7px;	border:1px solid #3e587b;	background-image:url('../rmm-img/sapphire-menu-bg.png');	background-position:top;}.rmm.sapphire .rmm-button span {	display:block;	margin:4px 0px 4px 0px;	height:2px;	background:white;	width:20px;}.rmm.sapphire .rmm-toggled ul li a {	display:block;	width:100%;	background-color:#537698;	text-align:center;	padding:10px 0px 10px 0px;	border-top:1px solid white;}.rmm.sapphire .rmm-toggled ul li a:active {	background-color:#3c5779;	border-bottom:1px solid #3c5779;	border-top:1px solid #3c5779;}.rmm.sapphire .rmm-toggled ul li:first-child a { 	border-top:1px solid #3c5779 !important;} @[member=MEDIA] screen and (min-width: 0px) and (max-width:976px) {    .rmm {	display:block;}    }

Segue o JAVASCRIPT (de terceiros):

function responsiveMobileMenu() {			$('.rmm').each(function() {					$(this).children('ul').addClass('rmm-main-list');	// mark main menu list					var $style = $(this).attr('data-menu-style');	// get menu style				if ( typeof $style == 'undefined' ||  $style == false )					{						$(this).addClass('graphite'); // set graphite style if style is not defined					}				else {						$(this).addClass($style);					}						/* 	width of menu list (non-toggled) */						var $width = 0;				$(this).find('ul li').each(function() {					$width += $(this).outerWidth();				});							// if modern browser						if ($.support.leadingWhitespace) {				$(this).css('max-width' , $width*1.05+'px');			}			// 			else {				$(this).css('width' , $width*1.05+'px');			}			 	});}function getMobileMenu() {	/* 	build toggled dropdown menu list */		$('.rmm').each(function() {					var menutitle = $(this).attr("data-menu-title");				if ( menutitle == "" ) {					menutitle = "Menu";				}				else if ( menutitle == undefined ) {					menutitle = "Menu";				}				var $menulist = $(this).children('.rmm-main-list').html();				var $menucontrols ="<div class='rmm-toggled-controls'><div class='rmm-toggled-title'>" + menutitle + "</div><div class='rmm-button'><span> </span><span> </span><span> </span></div></div>";				$(this).prepend("<div class='rmm-toggled rmm-closed'>"+$menucontrols+"<ul>"+$menulist+"</ul></div>");		});}function adaptMenu() {		/* 	toggle menu on resize */		$('.rmm').each(function() {			var $width = $(this).css('max-width');			$width = $width.replace('px', ''); 			if ( $(this).parent().width() < $width*1.05 ) {				$(this).children('.rmm-main-list').hide(0);				$(this).children('.rmm-toggled').show(0);			}			else {				$(this).children('.rmm-main-list').show(0);				$(this).children('.rmm-toggled').hide(0);			}		});		}$(function() {	 responsiveMobileMenu();	 getMobileMenu();	 adaptMenu();	 	 /* slide down mobile menu on click */	 	 $('.rmm-toggled, .rmm-toggled .rmm-button').click(function(){	 	if ( $(this).is(".rmm-closed")) {		 	 $(this).find('ul').stop().show(300);		 	 $(this).removeClass("rmm-closed");	 	}	 	else {		 	$(this).find('ul').stop().hide(300);		 	 $(this).addClass("rmm-closed");	 	}			});	});	/* 	hide mobile menu on resize */$(window).resize(function() { 	adaptMenu();});

Obs.: Removi os espaços dos códigos para que não ficasse tão cumprido.

 

Como já dito, gostaria que os <ul> e seus respectivos <li> só aparecem quando eu clicasse sobre tal <li>

Ex: 

<ul>   <li><a href="#">LINK</a></li>   <li><a href="#">LINK</a></li>   <li><a href="#">LINK</a>      <ul>         <li><a href="#">SUBMENULINK</a></li>         <li><a href="#">SUBMENULINK2</a></li>      </ul>   </li></ul>

Conto com a ajuda de vocês.

Desde já, agradeço.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!