Mejora la Experiencia de Desplazamiento con CSS Snap Scroll Horizontal (2023)

El desplazamiento suave y efectivo en las páginas web es esencial para brindar una experiencia de usuario óptima, especialmente en sitios con secciones a pantalla completa o en dispositivos táctiles. La implementación inteligente de CSS Snap Scroll Horizontal es la clave para lograrlo. En este artículo, exploraremos cómo utilizar esta técnica para crear sitios web con desplazamiento horizontal a pantalla completa.

Ventajas de CSS Snap Scroll

CSS Snap Scroll se revela como la solución ideal para mejorar la experiencia de desplazamiento en dispositivos táctiles y móviles. Si buscas un sitio web compatible con dispositivos de escritorio, la respuesta es fullpage.js. Esta biblioteca ofrece una opción que permite el desplazamiento horizontal al utilizar la rueda del ratón o el trackpad.

Creación del Contenedor de Desplazamiento

Para implementar CSS Snap Scroll Horizontal, primero necesitamos un elemento contenedor que envuelva las secciones que atraerán el desplazamiento. Este elemento, llamado "contenedor de desplazamiento," puede ser un elemento principal (<main> en este caso). Las secciones se añaden dentro de este contenedor.

html, body {
  font-family: sans-serif;
  margin: 0;
  height: 100%;
}

main {
  height: 100%;
  display: flex;
  overflow-y: hidden;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

Alineación Horizontal con Flexbox

Utilizamos CSS3 Flexbox para alinear horizontalmente cada sección dentro del contenedor principal.

main {
  height: 100%;
  display: flex;
  overflow-y: hidden;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

section {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  min-width: 100vw;
  font-size: 3.5ch;
  scroll-snap-align: start;
}

section:nth-child(odd) {
  background: black;
  color: white;
}

Ajuste del Alto de las Secciones

Ajustamos la altura de las secciones para excluir el ancho de la barra de desplazamiento de la unidad de vista (vh).

section {
  height: calc(100vh - var(--scrollbar-width));
}

Exclusión del Ancho de la Barra de Desplazamiento

Dado que las unidades de vista como vh incluyen la barra de desplazamiento, utilizamos JavaScript para calcular el ancho de la barra y ajustar dinámicamente la altura de las secciones.

function _calculateScrollbarWidth() {
  document.documentElement.style.setProperty('--scrollbar-width', window.innerWidth - document.documentElement.clientWidth + 'px');
}

document.addEventListener('DOMContentLoaded', _calculateScrollbarWidth, false);
window.addEventListener('load', _calculateScrollbarWidth);
window.addEventListener('resize', _calculateScrollbarWidth, false);

Conclusión y Recomendación

Si te entusiasma el desplazamiento snap (como a nosotros), fullPage.js es la respuesta a todos los desafíos de compatibilidad entre navegadores y dispositivos. Esta biblioteca bien documentada y probada ofrece una solución completa para el desplazamiento horizontal, además de eventos personalizados, estilos condicionales y soporte para marcos front-end populares como React, Vue y Angular, así como constructores de sitios como Elementor o Gutenberg.

Descubre cómo mejorar la experiencia de desplazamiento con CSS Snap Scroll Horizontal en . ¡Eleva tu sitio web al siguiente nivel!

Top Articles
Latest Posts
Article information

Author: Laurine Ryan

Last Updated: 17/11/2023

Views: 6270

Rating: 4.7 / 5 (57 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Laurine Ryan

Birthday: 1994-12-23

Address: Suite 751 871 Lissette Throughway, West Kittie, NH 41603

Phone: +2366831109631

Job: Sales Producer

Hobby: Creative writing, Motor sports, Do it yourself, Skateboarding, Coffee roasting, Calligraphy, Stand-up comedy

Introduction: My name is Laurine Ryan, I am a adorable, fair, graceful, spotless, gorgeous, homely, cooperative person who loves writing and wants to share my knowledge and understanding with you.