react-scroll-snap-anime-slider
Version:
A simple slider/carousel using css style scroll-snap and Popmotion.
54 lines (53 loc) • 1.55 kB
TypeScript
import React from 'react';
import SliderBar, { IProps as P, IState as S } from "./SliderBar";
export interface IRenderDotsProps {
/**
* Total slides in this slider
*/
totalSlides: number;
/**
* Current slide index (from 0)
*
*/
currentSlide: number;
/**
* How many visible slides (N), slide width = 100% / N
*/
visibleSlides: number;
/**
* How mange slides per step (when click previous and next button)
*/
step: number;
/**
* How far has scrolled in %, range in [0 ~ (100 - % of visible slides)]
*/
left: number;
/**
* A function to call to slide to a target slide [from 0 ~ (length - visible slide - 1)]
* @param slideIndex
* @returns
*/
slideTo: (slideIndex: number) => void;
}
export interface IProps extends P {
dotGroupProps?: React.HTMLAttributes<HTMLDivElement>;
/**
* To customize the dot group rendering by using the state props passed in
*
* @returns
*/
renderDots?: (props: IRenderDotsProps) => JSX.Element | JSX.Element[];
}
export interface IState extends S {
}
export declare class SliderBarDotGroup extends SliderBar<IProps, IState> {
theDot(key: number, active: boolean, onClick: () => void): JSX.Element;
/**
* Simple dot rendering, add "active" ClassName to those active dots
*
* @param props
* @returns
*/
renderDots(props: IRenderDotsProps): JSX.Element[];
render(): JSX.Element;
}