Categorias: CSS | jQuery

Menu recolhido na versão mobile

Escrito por Amanda de Lavra

19 de junho de 2021

Ao criar um menu com muitos submenus, cria-se um problema que na versão mobile não é possível ver todos os itens do menu. A solução é criar um menu recolhido onde só os itens do primeiro nível apareçam primeiramente e os do segundo nível sejam mostrados num click. Eesse tutorial mostra como fazer isso usando jQuery e CSS: https://www.elegantthemes.com/blog/divi-resources/how-to-create-a-mobile-collapsing-nested-menu-with-divis-theme-builder.

É necessário definir a classe dos menus de primeiro nível como first-level e segundo nível como second-level. Depois adiciona-se esse código ao cabeçalho:

(function($) {
       
	function setup_collapsible_submenus() {
     
		var FirstLevel = $('.et_mobile_menu .first-level > a');
		FirstLevel.off('click').click(function() {
			$(this).attr('href', '#');  
			$(this).parent().children().children().toggleClass('reveal-items');
			$(this).toggleClass('icon-switch');
		});
   }

	$(window).load(function() {
		setTimeout(function() {
			setup_collapsible_submenus();
		}, 700);
	});
})(jQuery);

Além disso, tem esse código CSS:

.et_mobile_menu .first-level > a {
	background-color: transparent;
	position: relative;
}
.et_mobile_menu .first-level > a:after {
	font-family: 'ETmodules';
	content: '\4c';
	font-weight: normal;
	position: absolute;
	font-size: 16px;
	top: 13px;
	right: 10px;
}
.et_mobile_menu .first-level > .icon-switch:after{
	content: '\4d';
}
.second-level {
	display: none;
}
.reveal-items {
	display: block;
}

Há mais um pedaço do código CSS que tive que retirar para que o menu fosse visualizado corretamente, mas deixo aqui para registro caso seja necessário em algum momento:

.et_mobile_menu {
	margin-top: 20px;
	width: 230%;
	margin-left: -65%;
}

Posts relacionados

Customizações da página de login e painel administrativo do WordPress

Customizações da página de login e painel administrativo do WordPress

Para todo o site que eu faço, personalizo a página de login e também o wp-admin para ficar com a marca do cliente. Recentemente, aperfeiçoei o código para que o login ficasse no meio da página, tanto verticalmente quanto horizontalmente. Segue código usado aqui neste...

Esconder título na imagem em hover no Divi

Esconder título na imagem em hover no Divi

O Divi tem uma coisa muita chata que é aparecer o atributo título das imagens quando passa o mouse em cima delas. Tentei resolver com CSS, mas o código usava a propriedade pointer-events e definia como none. Isso tira não apenas a ação do hover, mas também do click e,...

Botão Leia Mais no Elementor

Botão Leia Mais no Elementor

O site do cliente tinham alguns textos que eram muito extensos e, num layout de coluna, variavam muito de tamanho. Decidi adaptar o que já havia feito no Divi, ao incluir um botão Leia Mais (https://blog.amandadelavra.com.br/modulo-texto-com-botao-leia-mais/), mas...