Como Criar um Menu Lateral com Transição e Animação CSS
Tempo de leitura: < 1 minuto(s)
O exemplo a seguir usa dois componentes React e um arquivo css para criar um menu animado, que quando acionado, desliza da lateral direita da tela e se expande até 400px. Não requer instalação de nenhuma biblioteca extra. O código foi abreviado para fins de resumir a explicação da ideia.
Inclui uma demonstração em vídeo. Customize como desejar:
Conteúdo
ocultar
Demonstração
Mãos ao Código
const [sidebarShow, toggleSidebarShow] = useState(false); return ( <> <button onClick={() => toggleSidebarShow(!sidebarShow)} className="btn-navbar btn-account" > <Icon name="user" /> Account </button> <AccountMenu show={sidebarShow} toggle={toggleSidebarShow} /> </> );
// Fechar o menu quando clicar fora dele document.body.addEventListener("click", function (evt) { if (show && !evt.target.closest(".account-menu")) { toggle(false); } }); const currentClass = show ? 'show' : 'hide'; return (<aside className={'account-menu ' + currentClass}> <h4 className="email">{email}</h4> <strong className="label-plan"><small>Subscription Plan</small></strong> // Coloque aqui seu próprio menu <button className="btn-signout">Sign Out</button> </aside> );
@keyframes width-slide-in { 0% { width: 0; opacity: 0; display: none; } 35% { width: 400px; } 100% { opacity: 1; width: 400px; display: block; } } aside.account-menu { font-size: 14.224px; background: #1c2146; color: #fff; position: fixed; height: 100vh; right: 0; top: 0; padding: 0; z-index: 1; transition-duration: 0.5s; animation: width-slide-in 0.5s forwards; } aside.account-menu.hide { visibility: hidden; display: none; } aside.account-menu.show { visibility: visible; display: block; }
Este artigo foi lido 170+ vezes. Obrigado por ler até aqui! Fique à vontade pra copiar e compartilhar. Ajude sempre seus colegas. O conhecimento muda vidas!
O conteudo foi útil? Isso é fantástico. Quer incentivar mais posts como esse? Mostre seu apoio com qualquer valor.
Chave PIX: d0311e58-cb6e-4d47-b3d8-3d4254763ce7
Inscrever-se
Login
0 Comentários
Categorias relacionadas