@zebra-ui/swiper
Version:
专为多端设计的高性能swiper轮播组件库,支持多种复杂的 3D swiper轮播效果。
142 lines (128 loc) • 3.67 kB
TypeScript
export interface VirtualMethods<T = any> {
/**
* Object with cached slides HTML elements
*/
cache: object
/**
* Index of first rendered slide
*/
from: number
/**
* Index of last rendered slide
*/
to: number
/**
* Array with slide items passed by `virtual.slides` parameter
*/
slides: T[]
/*
* Methods
*/
/**
* Append slide. `slides` can be a single slide item or array with such slides.
*
* @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source)
*/
appendSlide(slide: HTMLElement | string | HTMLElement[] | string[]): void
/**
* Prepend slide. `slides` can be a single slide item or array with such slides.
*
* @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source)
*/
prependSlide(slide: HTMLElement | string | HTMLElement[] | string[]): void
/**
* Remove specific slide or slides. `slideIndexes` can be a number with slide index to remove or array with indexes.
*
* @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source)
*/
removeSlide(slideIndexes: number[]): void
/**
* Remove all slides
*
* @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source)
*/
removeAllSlides(): void
/**
* Update virtual slides state
*/
update(force: boolean): void
slidesBefore: number
slidesAfter: number
slidesGrid: number[]
offset: number
data: VirtualData<T>
}
export interface VirtualEvents {}
export interface VirtualData<T> {
/**
* slides left/top offset in px
*/
offset: number
/**
* index of first slide required to be rendered
*/
from: number
/**
* index of last slide required to be rendered
*/
to: number
/**
* array with slide items to be rendered
*/
slides: T[]
}
export interface VirtualOptions<T = any> {
/**
* Whether the virtual slides are enabled
*
* @default false
*/
enabled?: boolean
/**
* Array with slides
*
* @default []
*/
slides?: T[]
/**
* Enables DOM cache of rendering slides html elements. Once they are rendered they will be saved to cache and reused from it.
*
* @default true
*/
cache?: boolean
/**
* Increases amount of pre-rendered slides before active slide
*
* @default 0
*/
addSlidesBefore?: number
/**
* Increases amount of pre-rendered slides after active slide
*
* @default 0
*/
addSlidesAfter?: number
/**
* Function to render slide. As an argument it accepts current slide item for `slides` array and index number of the current slide. Function must return an outer HTML of the swiper slide or slide HTML element.
*
* @default null
*/
renderSlide?: (slide: T, index: any) => any | null
/**
* Function for external rendering (e.g. using some other library to handle DOM manipulations and state like React.js or Vue.js). As an argument it accepts `data` object with the following properties:
*
* - `offset` - slides left/top offset in px
* - `from` - index of first slide required to be rendered
* - `to` - index of last slide required to be rendered
* - `slides` - array with slide items to be rendered
*
* @default null
*/
renderExternal?: (data: VirtualData<T>) => any | null
/**
* When enabled (by default) it will update Swiper layout right after renderExternal called. Useful to disable and update swiper manually when used with render libraries that renders asynchronously
*
* @default true
*/
renderExternalUpdate?: boolean
}