# @xxfogs/svelte-carousel This is a fork of [svelte-carousel](https://github.com/vadimkorr/svelte-carousel) project made due to it's lack of maintainment. ## Installation ```bash yarn add -D @xxfogs/svelte-carousel ``` ```bash pnpm i -D @xxfogs/svelte-carousel ``` ```bash yarn i -D @xxfogs/svelte-carousel ``` ## Usage 1. Install as development dependancy 2. Import and use ```svelte {#if browser}
1
2
3
{/if} ``` ## Props | Prop | Type | Default | Description | |---------------------------|------------|-----------------|-----------------------------------------------| | `arrows` | `boolean` | `true` | Enables next/prev arrows | | `infinite` | `boolean` | `true` | Infinite looping | | `initialPageIndex` | `number` | `0` | Page to start on | | `duration` | `number` | `500` | Transition duration (ms) | | `autoplay` | `boolean` | `false` | Enables autoplay of pages | | `autoplayDuration` | `number` | `3000` | Autoplay change interval (ms) | | `autoplayDirection` | `string` | `'next'` | Autoplay change direction (`next` or `prev`) | | `pauseOnFocus` | `boolean` | `false` | Pauses autoplay on focus (for touchable devices - tap the carousel to toggle the autoplay, for non-touchable devices - hover over the carousel to pause the autoplay) | | `autoplayProgressVisible` | `boolean` | `false` | Shows autoplay duration progress indicator | | `dots` | `boolean` | `true` | Current page indicator dots | | `timingFunction` | `string` | `'ease-in-out'` | CSS animation timing function | | `swiping` | `boolean` | `true` | Enables swiping | | `particlesToShow` | `number` | `1` | Number of elements to show | | `particlesToScroll` | `number` | `1` | Number of elements to scroll | ## Events ### `pageChange` It is dispatched on page change | Payload field | Type | Description | |--------------------|-------------|---------------------------------------| | `event.detail` | `number` | Current page index | ```svelte console.log(`Current page index: ${event.detail}`) } > ``` ## Slots ### `prev` and `next` They are used for customizing prev and next buttons. Slot props: | Prop | Type | Description | |--------------------|-------------|---------------------------------------| | `showPrevPage` | `function` | Call it to switch to the previos page | | `showNextPage` | `function` | Call it to switch to the next page | ```svelte
``` ### `dots` This slot is used for customizing how dots look like. Slot props: | Prop | Type | Description | |---------------------|--------------|----------------------------------------------| | `currentPageIndex` | `number` | Represents current page index (start from 0) | | `pagesCount` | `number` | Total pages amount | | `showPage` | `function` | Takes index as page to be shown | ```svelte
``` ### Default slot This slot takes content for the carousel. Slot props: | Prop | Type | Description | |--------------------|------------|----------------------------------------------------------------------| | `loaded` | `number[]` | Contains indexes of pages to be loaded. Can be used for lazy loading | | `currentPageIndex` | `number` | Represents current page index (start from 0) | ```svelte
``` ## Methods ### `goTo` Navigates to a page by index. `(pageIndex, options) => Promise`. Arguments: | Argument | Type | Default | Description | |--------------------|-------------|---------|---------------------------------------| | `pageIndex` | `number` | | Page number | | `options.animated` | `boolean` | `true` | Should it be animated or not | ```svelte ``` ### `goToPrev` Navigates to the previous page. `(options) => Promise`. Arguments: | Argument | Type | Default | Description | |--------------------|-------------|---------|-------------------------------| | `options.animated` | `boolean` | `true` | Should it be animated or not | ```svelte ``` ### `goToNext` Navigates to the next page. `(options) => Promise`. Arguments: | Argument | Type | Default | Description | |--------------------|-------------|---------|------------------------------| | `options.animated` | `boolean` | `true` | Should it be animated or not | ```svelte ```