Tengo un script de encabezado y pie de página aquí, pero cuando me desplazo hacia arriba en IOS, el desplazamiento rebota y registra el último desplazamiento como un desplazamiento hacia abajo y oculta mi encabezado (es importante que se muestre en la parte superior = 0).
¿Qué hacer para dar esa condición a anula este script?
jQuery.event.special.touchstart = { setup: function(_, ns, handle) { this.addEventListener('touchstart', handle, { passive: !ns.includes('noPreventDefault') }); } }; jQuery.event.special.touchmove = { setup: function(_, ns, handle) { this.addEventListener('touchmove', handle, { passive: !ns.includes('noPreventDefault') }); } }; var prevScrollpos = window.pageYOffset; window.onscroll = function() { var currentScrollPos = window.pageYOffset; if (prevScrollpos > currentScrollPos) { document.querySelector(".header").style.top = "0"; document.querySelector(".navicon").style.top = "8px"; document.querySelector(".groupticket").style.top = "6px"; document.querySelector(".search").style.top = "14px"; document.querySelector(".foot").style.bottom = "0px"; document.querySelector(".filter").style.top = "-50px"; } else { document.querySelector(".header").style.top = "-86px"; document.querySelector(".navicon").style.top = "8px"; document.querySelector(".groupticket").style.top = "6px"; document.querySelector(".search").style.top = "14px"; document.querySelector(".foot").style.bottom = "-201px"; document.querySelector(".filter").style.top = "0px"; } prevScrollpos = currentScrollPos; }Agregué esto pero parece interferir con el script:
var idVar = setTimeout() => { onscroll() }, 1000);Este código usa una función que está escuchando "desplazarse" en la página y después de 2 segundos ejecuta el comando. También hice el mismo guión para el pie de página:
var isScrolling; navbar = document.getElementById("header"); window.addEventListener('scroll', () => { header.style.top = "-50px" + header.style.height; window.clearTimeout(isScrolling); isScrolling = setTimeout(function() { header.style.top = "0"; }, 2000); }, false);