Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

173
Visualizações
Navegación "Alternar" con animación en desplazamiento

Estoy escribiendo un código que ocultará mi barra de navegación al desplazarse y la mostrará de nuevo en consecuencia.
Hasta ahora funciona bien, pero tenía curiosidad sobre cómo implementar alguna animación o transición para revelar/ocultar ese elemento.

Aquí está mi código hasta ahora

 var prevScrollpos = window.pageYOffset; window.onscroll = function() { var currentScrollPos = window.pageYOffset; if (prevScrollpos > currentScrollPos) { document.getElementById("bottom-navigation").style.bottom = "0"; } else { document.getElementById("bottom-navigation").style.bottom = "-100px"; } prevScrollpos = currentScrollPos; }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

  • Use la transform y transition CSS que (a diferencia de otras propiedades como bottom top , etc.) se puede acelerar con GPU
  • Use una clase especial como, por ejemplo: .hidden o .hide que, todo lo que necesita en JavaScript es un Element.classList.toggle ( className, boolean ) para alternar esa clase
  • Nunca use on(eventname) , a menos que esté creando elementos completamente nuevos desde la memoria.
    on* anulará cualquier nombre de evento agregado previamente a ese elemento. En su lugar, use un enfoque acumulativo , usando Element.addEventListener()

 const EL_bottomNav = document.querySelector("#bottom-navigation"); let prevScrollpos = window.pageYOffset; const toggleBottomNav = () => { EL_bottomNav.classList.toggle("hide", prevScrollpos <= window.pageYOffset); prevScrollpos = window.pageYOffset; }; // Do immediately: // toggleBottomNav(); // And on page scroll: window.addEventListener("scroll", toggleBottomNav);
 /* QuickReset */ * {margin:0; box-sizing: border-box; } body { min-height: 300vh; /* just to force some scrollbars */ } #bottom-navigation { position: fixed; width: 100%; bottom:0; background: gold; padding: 30px; transition: 0.5s; } #bottom-navigation.hide { transform: translateY(100%); }
 Scroll down and than up <footer id="bottom-navigation">I'm the bottom nav!</footer>

Nota bene:
Dado que los eventos agregados en el desplazamiento son costosos, no consulte el DOM para su elemento. En su lugar, guárdelo en caché de antemano (como en el ejemplo anterior). También sería útil una función de aceleración para aprovechar la carga de llamadas de función pasadas al bucle de eventos en el hilo principal.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda