Skip to content

Instantly share code, notes, and snippets.

@evelynholanda
Created September 28, 2021 14:15
Show Gist options
  • Select an option

  • Save evelynholanda/a2ea71cb57a54b835d7e02cf7ac6ac57 to your computer and use it in GitHub Desktop.

Select an option

Save evelynholanda/a2ea71cb57a54b835d7e02cf7ac6ac57 to your computer and use it in GitHub Desktop.
Botão que abre Menu
<div id="menu" class="menu" data-aberto="false">
<span id="menu-trigger" class="menu-trigger">
<i class="fa fa-plus"></i>
<i class="fa fa-minus"></i>
</span>
<ul class="menu-menu">
<li><a href='#'>Ortopedia</a></li>
<li><a href='#'>Ventosa</a></li>
<li><a href='#'>Liberação Miofacial</a></li>
</ul>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac enim pharetra, convallis elit sit amet, laoreet sem. Phasellus ut urna lacus. Nullam id urna nisi. Vestibulum blandit, lectus quis dictum mollis, est eros condimentum sapien, in sodales purus lectus nec dui. Sed quis erat id nisi dapibus commodo ut quis ipsum. Fusce congue efficitur elit, at varius metus aliquet vel. Curabitur imperdiet lacus id risus porttitor, facilisis tempor enim consectetur. Nulla bibendum tempor nulla, et mollis arcu. Sed eu semper mi, euismod fermentum ligula. Sed blandit ipsum sed rhoncus feugiat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent efficitur rutrum tempor. Sed facilisis iaculis imperdiet.
</p>
const $menu = document.getElementById("menu");
const $menuTrigger = document.getElementById("menu-trigger");
let state = $menu.dataset.aberto;
$menuTrigger.addEventListener("click", () => {
if (state == "false") {
state = "true";
} else {
state = "false";
}
$menu.dataset.aberto = state;
});
body {
font-size: 200%;
font-family: sans-serif;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
.menu {
position: relative;
> .menu-trigger {
display: inline-grid;
place-items: center;
padding: 0.5em;
border: 1px solid #ccc;
border-radius: 0.3em;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
cursor: pointer;
}
> .menu-menu {
background: #ffc;
border: 1px solid #ccc;
border-radius: 0.3em;
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.2);
position: absolute;
margin-top: 0.5em;
transition: opacity 0.3s ease;
> li {
padding: 0.2em 0.4em;
}
}
&[data-aberto="true"] {
> .menu-trigger > .fa-plus {
display: none;
}
> .menu-menu {
opacity: 1;
visibility: visible;
}
}
&[data-aberto="false"] {
> .menu-trigger > .fa-minus {
display: none;
}
> .menu-menu {
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease, visibility 0.3s step-end;
}
}
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet" />
<link href="https://codepen.io/pen/?template=VwWqxRM" rel="stylesheet" />
@evelynholanda
Copy link
Author

Criando menu com css, html e js

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment