Al agregar una posición: se corrigió el desplazamiento en mi barra de navegación, el DOM arroja el error: [Violación] Reflujo forzado al ejecutar JavaScript tomó ms, en cada evento de desplazamiento. Según tengo entendido (y buscando en Google), esto significa que hay cambios en el diseño cada vez que ocurre un evento de desplazamiento debido a un nuevo cálculo.
Mi pregunta es; ¿es esto un problema? Realmente no puedo descifrar el código de cómo mejorarlo para eliminar la infracción, por lo que quería saber si este es un comportamiento "estándar" cuando se trabaja con compensaciones de desplazamiento.
El código que estoy usando es el siguiente:
document.addEventListener('DOMContentLoaded', function() { window.addEventListener('scroll', addPositionFixed); var navbar = document.getElementById("navbar"); var sticky = navbar.offsetTop; function addPositionFixed() { if (window.pageYOffset >= sticky) { navbar.classList.add("sticky"); } else { navbar.classList.remove("sticky"); } } })Encontré una respuesta que parecía funcionar y no arrojaba errores:
window.onscroll = function() {myFunction()}; var header = document.getElementById("navbar"); var sticky = header.offsetTop; function myFunction() { if (window.pageYOffset > sticky) { header.classList.add("sticky"); } else { header.classList.remove("sticky"); } }¡Al menos eso ya no arroja ningún error!