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.
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.
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.
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.
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.
scroll-behavior
?
scroll-behavior
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.
Para más información y detalles, consulta la documentación oficial de MDN sobre scroll-behavior.
Jorge García
Fullstack developer