Volver a la página principal
viernes 27 septiembre 2024
12

Cómo suavizar el desplazamiento con scroll-behavior en CSS

La propiedad scroll-behavior en CSS permite controlar el tipo de desplazamiento cuando se navega a anclas dentro de la página o se usa JavaScript para mover el scroll. Es ideal para implementar un efecto de desplazamiento suave (smooth scrolling) que mejore la experiencia del usuario al navegar por sitios de una sola página o secciones específicas.

¿Qué es scroll-behavior y cómo se utiliza?

scroll-behavior define cómo se moverá la vista cuando se realicen acciones de desplazamiento programático, como al hacer clic en enlaces de anclaje (#seccion) o al usar funciones de JavaScript como element.scrollIntoView(). Con esta propiedad, se puede elegir entre un desplazamiento instantáneo o una transición suave.

Sintaxis básica:

html {
  scroll-behavior: smooth;
}

En este ejemplo, se aplica el desplazamiento suave a todo el documento cuando se hacen clics en enlaces internos, mejorando la fluidez del movimiento.

Valores de scroll-behavior

1. auto: Valor predeterminado. El desplazamiento es instantáneo y sin animación.

2. smooth: Activa un desplazamiento suave, con una transición fluida entre el punto de origen y destino.

Ejemplos de uso con scroll-behavior

1. Desplazamiento suave en el documento completo:

html {
     scroll-behavior: smooth;
   }

Al aplicar scroll-behavior: smooth en el html, todos los enlaces de anclaje (<a href="#seccion">) y los métodos de desplazamiento en JavaScript usarán una animación de desplazamiento suave.

2. Desplazamiento suave en un contenedor específico:

.contenedor-scroll {
     height: 300px;
     overflow-y: scroll;
     scroll-behavior: smooth;
   }

En este caso, el contenedor con clase .contenedor-scroll aplicará un desplazamiento suave solo dentro de su área cuando se use scroll, ideal para secciones de contenido largo con desplazamiento interno.

3. Desplazamiento en un contenedor con scrollIntoView():

document.querySelector('.elemento').scrollIntoView({
     behavior: 'smooth'
   });

Usando JavaScript con la opción behavior: 'smooth', se logra el mismo efecto de desplazamiento suave al desplazar un elemento específico a la vista.

¿Cuándo usar scroll-behavior?

  • En sitios de una sola página (one-page sites): Para navegar entre secciones usando enlaces ancla de forma fluida.
  • Para mejorar la experiencia de usuario: La navegación suave es menos brusca y más agradable visualmente.
  • En contenedores con desplazamiento interno: Facilita la exploración de listas largas o secciones con scroll vertical u horizontal.

Consideraciones al usar scroll-behavior

  • Compatibilidad de navegadores: Aunque scroll-behavior es ampliamente soportado en navegadores modernos, no está disponible en versiones antiguas de Internet Explorer. Verifica su compatibilidad antes de implementarlo en proyectos que necesiten soporte legacy.
  • Impacto en la usabilidad: Si se usa en exceso, un desplazamiento suave puede ser contraproducente, generando una sensación de lentitud.

Referencia oficial

Para más información y detalles, consulta la documentación oficial de MDN sobre scroll-behavior.

Etiquetas:
css
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer