# Carousel ## Demos ### Switching items Use the `index` to control the current item to be displayed. [[ demo src="/demo/carousel/switch.vue" ]] ### Indicator type Use the [`indicator`](#props-indicator) prop to specify the type of step indicators. [[ demo src="/demo/carousel/indicator.vue" ]] ### Autoplay Use the [`autoplay`](#props-autoplay) prop to enable autoplay. [[ demo src="/demo/carousel/autoplay.vue" ]] ## API ### Props | Name | Type | Default | Description | | -- | -- | -- | -- | | ``datasource`` | `Array` | `[]` | [^datasource] | | ``index`` | `number=` | `0` | [^index] | | ``indicator`` | `string=` | `'radio'` | [^indicator] | | ``switch-trigger`` | `string=` | `'click'` | [^switch-trigger] | | ``autoplay`` | `boolean=` | `false` | Whether to autoplay the carousel. | | ``pause-on-hover`` | `boolean=` | `false` | Whether to pause the cycling on hover when autoplaying. | | ``interval`` | `number=` | `3000` | The amount of time to delay between automatically cycling an item. | | ``wrap`` | `boolean=` | `false` | Whether the carousel should cycle continuously or have hard stops. | ^^^datasource The media datasource for the carousel, with the item type being `{src, alt, label}`. +++Properties | Name | Type | Description | | -- | -- | -- | | `src` | `string` | The source of the image. | | `alt` | `string` | The alternate text of the image. | | `label` | `string` | Descriptive title of the image. | +++ ^^^ ^^^index :::badges `.sync` ::: The index of the current image within the datasource. ^^^ ^^^indicator The way the indicator is displayed. +++Enum values | Value | Description | | -- | -- | | `radio` | As radio buttons. | | `number` | As numeric value in the form of *current item / total items*. | | `none` | Not displayed. | ^^^ ^^^switch-trigger The behavior triggers item switch when radio indicator is displayed. +++Enum values | Value | Description | | -- | -- | | `click` | Switched on click. | | `hover` | Switched on hover. | +++ ^^^ ### Slots | Name | Description | | -- | -- | | ``item`` | [^slot-item] | ^^^slot-item The content of each carousel item. Displays the corresponding image by default. The slot props are the same as each item inside `datasource` (including custom properties), with an extra `index: number`, which denotes the index within the datasource. i.e. The `slot-scope` is in the form of `{src, alt, label, index, ...}`. ^^^ ### Events | Name | Description | | -- | -- | | ``change`` | [^event-change] | ^^^event-change Triggered the current item changed. The callback argument list is `(to: number, from: number)`. `to` and `from` denote the new index and the old index respectively. ^^^ ### Icons | Name | Description | | -- | -- | | ``prev`` | Previous item. | | ``next`` | Next item. |