Ir al contenido
English

Navegar

Escribe para buscar. Pulsa Escape para cerrar.

    Componentes · js

    Carrusel (carousel)

    Un pase de diapositivas construido sobre una lista. El servidor envía las diapositivas en un carril con desplazamiento horizontal y ajuste (scroll-snap), puntos que son enlaces de ancla y botones ocultos; eso ya funciona en cualquier navegador. En init los puntos pasan a ser pestañas, las diapositivas paneles, los botones aparecen y el carril se mueve por transformaciones: deslizamiento con leyenda en paralaje, fundido cruzado, o un modo cinema que acerca lentamente el medio activo. El autoplay dibuja una barra de progreso, se pausa al pasar el puntero, al enfocar y cuando la pestaña del navegador se oculta, y nunca arranca si la persona prefiere reducir el movimiento.

    CSS: css/components/carousel.css (en ivolt.css). JS: @intervolutions/ivolt/carousel o auto.js. Añadido en la v0.3.

    Efecto cinema con autoplay

    data-iv-effect="cinema" funde las diapositivas y añade un zoom lento sobre el medio activo mientras la leyenda sube. Con data-iv-autoplay el componente añade un contador grande y una barra de progreso que se rellena durante el intervalo; el botón de reproducir/pausar expone su estado con aria-pressed.

    Miniaturas

    Da a los puntos la clase iv-carousel__dots--thumbs y pon una imagen pequeña en cada ancla: se convierten en pestañas con miniatura. Este ejemplo usa el efecto fade.

    Con fotografías

    Imágenes reales de Unsplash (acreditadas en las leyendas), efecto cinema y autoplay de siete segundos. Las imágenes viven con la documentación, no en el paquete.

    Opciones

    OpciónAtributoPor defectoEfecto
    effectdata-iv-effectslideslide, fade o cinema.
    autoplaydata-iv-autoplay0Milisegundos entre diapositivas; 0 desactiva el autoplay. Nunca arranca con movimiento reducido.
    loopdata-iv-looptrueContinúa por el otro extremo al llegar al final.
    pauseOnHoverdata-iv-pause-on-hovertruePausa el autoplay mientras el puntero está sobre el carrusel.
    swipedata-iv-swipetrueArrastrar con el puntero cambia de diapositiva (umbral de 40 px).
    durationdata-iv-duration600Duración de la transición en milisegundos.
    pauseText, playTextdata-iv-pause-text, data-iv-play-textPause, PlayTextos del botón de pausa y reproducción.

    Métodos y eventos

    next(), prev(), goTo(index), play(), pause(), destroy(); lectura de index, count, isPlaying y slides. Eventos en el elemento raíz: iv:change (cancelable, detail.index, previousIndex, reason) y después iv:changed; iv:play e iv:pause con un reason.

    Teclado, gestos y tecnología asistiva

    Izquierda y derecha cambian de diapositiva desde las pestañas o desde el visor, Inicio y Fin saltan a los extremos, Enter y Espacio activan una pestaña. Arrastrar con el puntero cambia de diapositiva. El marcado sigue el patrón de carrusel por pestañas: cada diapositiva es un panel llamado «n of N», las no visibles quedan inertes en los efectos fade y cinema, y el visor solo es una región viva mientras el autoplay está en pausa, para no interrumpir la lectura con cada cambio.

    Sin JavaScript

    El carril se desplaza horizontalmente y se ajusta a cada diapositiva, los puntos son enlaces de ancla que llevan la diapositiva a la vista y los botones quedan ocultos. Las leyendas van sobre un degradado para que el texto se lea sobre cualquier medio.

    Errores frecuentes

    • Medios sin texto alternativo ni aria-label: cada diapositiva necesita un nombre.
    • Autoplay en un carrusel con enlaces y formularios dentro: quien lo lee pierde el sitio. Mejor navegación manual o un intervalo largo.
    • Usar el carrusel para contenido esencial: nada importante debería existir solo en la cuarta diapositiva.

    Índice de clases

    Partes y modificadores de esta familia que los ejemplos de arriba no muestran. La lista completa por hoja está en la referencia.

    ClaseQué hace
    iv-carousel__scrimDegradado sobre la diapositiva para que un pie siga siendo legible sobre cualquier fotografía; lo genera init cuando el carrusel lleva pies.