Siempre he usado este script jQuery para un desplazamiento suave:
var root = $('html, body'); $('a[href^="#"]').click(function() { root.animate({ scrollTop: $($.attr(this, 'href')).offset().top }, 1000); return false; });¿Cómo puedo hacer esto con vainilla JavaScript? He intentado esto:
document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' });Pero no funciona con Safari, lo cual es un factor decisivo para mí.
Como puede leer en los documentos , safari no admite parámetros de opciones en scrollIntoView , por lo que deberá encontrar otro método. Sugiero echar un vistazo a esta alternativa .