Skip to content

A customizable React slider component supporting images, videos, or HTML content with smooth elastic scrolling animations and flexible slide types.

License

Notifications You must be signed in to change notification settings

cnbjjj/react-elastislide

Repository files navigation

react-elastislide npm version

react-elastislide Screenshot

react-elastislide is a customizable React slider component that supports images, videos, or HTML content with smooth elastic scrolling animations and flexible slide types.

Installation

npm i react-elastislide

Usage

Configuration Options

  • slides: IElastiSlide[] – An array of slides to display.
  • slideWidth?: number – The width of each slide (optional).
  • slideHeight?: number – The height of each slide (optional).
  • gap?: number – The gap between each slide (optional).
  • animDuration?: number – Duration of the slide animation in seconds (optional).
  • animDelay?: number – Delay between slide animations in seconds (optional).
  • btnPrev?: any – Custom previous button component (optional).
  • btnNext?: any – Custom next button component (optional).
  • btnPrevContent?: string – Text content for the previous button (optional).
  • btnNextContent?: string – Text content for the next button (optional).
  • overflow?: boolean – Whether to allow the slider to overflow (optional).
  • classNames?: ElastiSliderClassNames – Custom class names for styling the slider (optional).
  • onSlideClicked?: (index: number, slide: IElastiSlide, slides: IElastiSlide[]) => void – Callback triggered when a slide is clicked (optional).
  • onFirstScreen?: (slides: IElastiSlide[]) => void – Callback triggered when the first screen is visible (optional).
  • onLastScreen?: (slides: IElastiSlide[]) => void – Callback triggered when the last screen is visible (optional).
  • onScreenChanged?: (currentStep:number,totalSteps:number,slides: IElastiSlide[]) => void - Callback triggered when screen is changed (optional).

Example

const esliderConfig: ElastiSliderProps = {
    slides: [
        { src: 'img_1.png', type: ElastiSlideType.Image },
        { src: 'img_2.png', type: ElastiSlideType.Image },
        { src: 'img_3.png', type: ElastiSlideType.Image }
    ],
    slideWidth: 300,
    slideHeight: 300,
    gap: 40,
    animDuration: 0.35,
    animDelay: 0.075,
    overflow: true,
    classNames: {
        container: 'eslider-container',
        arrows: 'eslider-arrows',
        arrow: 'eslider-arrow',
        arrowPrev: 'prev',
        arrowNext: 'next',
        hidden: 'hidden',
        slider: 'eslider',
        slide: 'eslide',
        slideContent: 'eslide-content',
    },
    onSlideClicked: (index: number, slide: IElastiSlide, slides: IElastiSlide[]) => {
        console.log(`Slide clicked: ${index}`, slide);
    }
};

<ElastiSlider {...esliderConfig} />

Demo

Click to view


About

A customizable React slider component supporting images, videos, or HTML content with smooth elastic scrolling animations and flexible slide types.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published