Descripción general del carrusel de Web Components
El carrusel de Ignite UI for Web Components es un componente ligero y con capacidad de respuesta que proporciona la forma más flexible de crear una experiencia web similar a una presentación de diapositivas para los usuarios que navegan hacia adelante y hacia atrás a través de una colección de imágenes con diapositivas de texto, enlaces y otros elementos html.
El componente Carrusel Web Components le permite usar animaciones, transiciones de diapositivas y personalización para que pueda ajustar fácilmente la interfaz y crear Web Components carrusel personalizado.
Web Components Carousel Example
La demostración de Web Components Carousel que ve a continuación muestra diapositivas que contienen solo imágenes.
<!DOCTYPE html><html><head><title>Carousel Overview</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png" ><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="carousel-container"><igc-carousel><igc-carousel-slide><divclass="image-container"><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/ignite-ui-angular-indigo-design.png"/></div></igc-carousel-slide><igc-carousel-slide><divclass="image-container"><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/slider-image-chart.png"/></div></igc-carousel-slide><igc-carousel-slide><divclass="image-container"><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/ignite-ui-angular-charts.png"/></div></igc-carousel-slide></igc-carousel></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %><scriptsrc="src/index.ts"></script><% } %>
</body></html>html
Para obtener una introducción completa a Ignite UI for Web Components, lea el tema Primeros pasos.
Ahora que tiene el carrusel de Ignite UI for Web Components importado, puede comenzar con una configuración básica del IgcCarouselComponent y sus diapositivas.
Usa el IgcCarouselComponent selector para envolver tus diapositivas. Las diapositivas pueden contener cualquier contenido html válido, incluidos otros componentes.
If no active slide is set, the first one will be set by default. If there are multiple active slides on initial rendering or subsequent updates, only the last one will be taken into account.
Examples
Carousel Configuration
De forma predeterminada, el IgcCarouselComponent tiene su disableLoop propiedad establecida en falso (El bucle se produce cuando la primera diapositiva viene después de la última navegando con la acción Siguiente, o cuando la última diapositiva viene después de la primera mediante la acción Anterior). El comportamiento de bucle se puede desactivar estableciendo el valor de la propiedad disableLoop propiedad a verdadero.
Para realizar un seguimiento de cada índice de diapositivas, el carrusel tiene indicadores que se colocan en el end carrusel de forma predeterminada. Para cambiar este comportamiento, use la indicatorsOrientation propiedad y asígnela a start.
De forma predeterminada, muestra IgcCarouselComponent sus botones de navegación e indicadores. Utilice la hideIndicators propiedad para ocultar los indicadores y la hideNavigation propiedad para ocultar los botones de navegación.
El componente Carrusel Ignite UI for Web Components permite a los usuarios utilizar diferentes elementos para el estado activo e inactivo de un solo indicador. Es obligatorio proporcionar dos elementos para cada ranura (vacío y activo) al declarar un indicador, incluso si son los mismos.
Custom navigation buttons
Para lograr esto, use las previous-button ranuras y next-button:
<!DOCTYPE html><html><head><title>Carousel With Components</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png" ><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="carousel-container"><igc-carousel><igc-carousel-slide><div><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/svg/carousel/SignUp.svg"><form><igc-inputtype="text"placeholder="Username"><igc-iconslot="prefix"name="person"></igc-icon></igc-input><igc-inputtype="password"placeholder="Password"><igc-iconslot="prefix"name="password"></igc-icon></igc-input><igc-buttontype="reset">Sign In</igc-button></form></div></igc-carousel-slide><igc-carousel-slide><div><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/svg/carousel/Route.svg"><form><igc-inputtype="text"placeholder="Search"><igc-iconslot="prefix"name="search"></igc-icon></igc-input><igc-buttontype="reset">Search</igc-button></form></div></igc-carousel-slide></igc-carousel></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %><scriptsrc="src/index.ts"></script><% } %>
</body></html>html
<!DOCTYPE html><html><head><title>Carousel Animations</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png" ><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="carousel-wrapper"><divclass="action-wrapper"><divclass="action"><span>Animation type</span><igc-selectid="select"><igc-select-itemvalue="slide"selected>Slide</igc-select-item><igc-select-itemvalue="fade">Fade</igc-select-item><igc-select-itemvalue="none">None</igc-select-item></igc-select></div><divclass="action"><igc-switchlabel-position="before">Vertical alignment</igc-switch></div></div><igc-carouselhide-indicators><igc-carousel-slide><divclass="slide-wrapper"><igc-card><igc-card-header><h3slot="title">Ignite UI for Angular</h3></igc-card-header><igc-card-content><p>30+ Material-based Angular components to code speedy web apps faster.</p></igc-card-content><igc-card-media><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/slide1-angular.png"></igc-card-media><igc-card-actions><igc-buttonslot="start"href="https://www.infragistics.com/products/ignite-ui-angular"target="_blank"rel="noopener">
Visit Page
</igc-button></igc-card-actions></igc-card></div></igc-carousel-slide><igc-carousel-slide><divclass="slide-wrapper"><igc-card><igc-card-header><h3slot="title">Ignite UI for Javascript</h3></igc-card-header><igc-card-content><p>A complete JavaScript UI library empowering you to build data-rich responsive web apps.</p></igc-card-content><igc-card-media><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/slide2-ignite.png"></igc-card-media><igc-card-actions><igc-buttonslot="start"href="https://www.infragistics.com/products/ignite-ui"target="_blank"rel="noopener">
Visit Page
</igc-button></igc-card-actions></igc-card></div></igc-carousel-slide><igc-carousel-slide><divclass="slide-wrapper"><igc-card><igc-card-header><h3slot="title">Ultimate UI for ASP.NET</h3></igc-card-header><igc-card-content><p>Build full-featured business apps with the most versatile set of ASP.NET AJAX UI controls.</p></igc-card-content><igc-card-media><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/slide3-aspnet.png"></igc-card-media><igc-card-actions><igc-buttonslot="start"href="https://www.infragistics.com/products/aspnet"target="_blank"rel="noopener">
Visit Page
</igc-button></igc-card-actions></igc-card></div></igc-carousel-slide></igc-carousel></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %><scriptsrc="src/index.ts"></script><% } %>
</body></html>html
La transición y la navegación son las características más importantes del carrusel.
La navegación en el carrusel puede ser manejada por el usuario a través de botones de navegación, indicadores, navegación con el teclado e interacción táctil en dispositivos móviles.
Touch gestures
De forma predeterminada, el carrusel se puede usar en cualquier dispositivo táctil.
Las animaciones del carrusel son totalmente compatibles con dispositivos táctiles, lo que hace que el carrusel sea consistente con cualquier plataforma y excelente cuando se usa en aplicaciones web progresivas (PWA).
Navegación por teclado
Botones de navegación
Space / Enter key: navega a la diapositiva siguiente/anterior.
Indicadores
Arrow Left tecla: navega a la diapositiva anterior (siguiente en el modo de derecha a izquierda).
Arrow Right key: navega a la siguiente diapositiva (anterior en el modo de derecha a izquierda).
Home key: navega a la primera diapositiva (la última en el modo de derecha a izquierda).
End key: navega hasta la última diapositiva (la primera en el modo de derecha a izquierda).
Automatic transitioning
Se IgcCarouselComponent puede configurar fácilmente para cambiar las diapositivas automáticamente, sin ninguna interacción del usuario. De esta manera, puede crear su propia presentación de diapositivas estableciendo solo un intervalo de transición en la interval propiedad, que determina la cantidad de tiempo en milisegundos entre la transición de las diapositivas.
Hovering the mouse over any carousel content or moving keyboard focus to any of the carousel content pauses automatic transitioning. Automatic transitioning resumes when the mouse moves away from the carousel or when keyboard focus moves out of the carousel content. This can be prevented by setting disablePauseOnInteraction property to true.
Vamos a crear un carrusel totalmente automatizado con el bucle activado. Configuraremos los indicadores para que sean una representación en miniatura de cada diapositiva.
Para lograr este objetivo, tenemos que realizar las siguientes configuraciones al carrusel:
<!DOCTYPE html><html><head><title>Carousel Thumbnail</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png" ><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample"><igc-carouseldisable-pause-on-interactionhide-navigationinterval="2000"verticalanimation-type="fade"
><igc-carousel-indicator><imgclass="blurred"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/WonderfulCoastThumb.png"alt="Wonderful Coast Thumb"width="50"height="60"
/><imgslot="active"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/WonderfulCoastThumb.png"alt="Wonderful Coast Thumb Active"width="50"height="60"
/></igc-carousel-indicator><igc-carousel-indicator><imgclass="blurred"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/CulturalDipThumb.png"alt="Cultural Dip Thumb"width="50"height="60"
/><imgslot="active"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/CulturalDipThumb.png"alt="Cultural Dip Thumb Active"width="50"height="60"
/></igc-carousel-indicator><igc-carousel-indicator><imgclass="blurred"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/GoldenBeachesThumb.png"alt="Golden Beaches Thumb"width="50"height="60"
/><imgslot="active"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/GoldenBeachesThumb.png"alt="Golden Beaches Thumb Active"width="50"height="60"
/></igc-carousel-indicator><igc-carousel-indicator><imgclass="blurred"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/IslandOfHistoryThumb.png"alt="Island Of History Thumb"width="50"height="60"
/><imgslot="active"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/IslandOfHistoryThumb.png"alt="Island Of History Thumb Active"width="50"height="60"
/></igc-carousel-indicator><igc-carousel-indicator><imgclass="blurred"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/AmazingBridgeThumb.png"alt="Amazing Bridge Thumb"width="50"height="60"
/><imgslot="active"src="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/AmazingBridgeThumb.png"alt="Amazing Bridge Thumb Active"width="50"height="60"
/></igc-carousel-indicator><igc-carousel-slide><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/WonderfulCoast.png"alt="Wonderful Coast"
/></igc-carousel-slide><igc-carousel-slide><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/CulturalDip.png"alt="Cultural Dip"
/></igc-carousel-slide><igc-carousel-slide><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/GoldenBeaches.png"alt="Golden Beaches"
/></igc-carousel-slide><igc-carousel-slide><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/IslandOfHistory.png"alt="Island Of History"
/></igc-carousel-slide><igc-carousel-slide><imgsrc="https://www.infragistics.com/angular-demos-lob/assets/images/carousel/AmazingBridge.png"alt="Amazing Bridge"
/></igc-carousel-slide></igc-carousel></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %><scriptsrc="src/index.ts"></script><% } %>
</body></html>html
La función del elemento base del carrusel es region: sección que contiene contenido relevante para un propósito específico y los usuarios probablemente querrán poder navegar fácilmente.
Los indicadores del carrusel tienen tab de función: una etiqueta de agrupación que proporciona un mecanismo para seleccionar el contenido de la pestaña que se presentará al usuario.
El elemento que sirve como contenedor para el conjunto de pestañas (indicadores de carrusel) es con rol tablist.
Cada elemento de diapositiva está configurado con tabpanel de función.
aria-live: se utiliza para establecer la prioridad con la que el lector de pantalla debe tratar las actualizaciones a las regiones en vivo: las configuraciones posibles son: desactivado y cortés. La configuración predeterminada es cortés y se establece en el elemento que sirve como contenedor para el conjunto de diapositivas. Cuando se establece la interval opción y el carrusel está en estado de reproducción, el atributo aria-live se establecería en off.