Skip to content

nickpisacane/react-dynamic-swiper

Repository files navigation

react-dynamic-swiper

Travis

React wrapper for iDangerous-Swiper that auto-magically reinitializes and updates when configuration changes.

Demo

Installation

$ npm i --save react-dynamic-swiper

Usage

// Basic Usage
function MySwiper() {
  return (
    <Swiper
      swiperOptions={{
        slidesPerView: 42
      }}
      navigation={false}
      pagination={false}
    >
      <Slide onActive={swiper => console.log('Slide Active!')} />
    </Swiper>
  )
}

// Advanced Usage
//
// Swiper will automatically update swiper instance when children change (i.e. Slides),
// and/or re-initialize if swiper options change. Also, event handlers
// (`onTouchMove`, `onSlideChangeEnd`, etc.) are delegated. Changing them will
// require no reinitialization, while still functioning as expected.
import React, { Component } from 'react'
import { Swiper, Slide } from 'react-dynamic-swiper'
import 'react-dynamic-swiper/lib/styles.css'

class MySwiper extends Component {
  constructor(props, context) {
    super(props, context)
    this.state = {
      slides: []
    }
  }

  componentWillMount() {
    getAsyncSlideData().then(slides => this.setState({ slides }))
  }

  render() {
    const { slides } = this.state

    return (
      <Swiper
        swiperOptions={{
          slidesPerView: 'auto'
        }}
        nextButton={<MyNextButton />}
        prevButton={swiper => (
          <MyPrevButton onClick={() => swiper.slideNext()} />
        )}
        onTouchMove={(swiper, event) => doSomething()}
      >
        {slides.map(slide => (
          <Slide {...slide} />
        ))}
      </Swiper>
    )
  }
}

API

Swiper

Props

  • swiperOptions (Object) Options passed to swiper instance.
  • containerClassName (String) Classname for underlying container element.
  • wrapperClassName (String) Classname for underlying wrapper element.
  • navigation (Boolean) Display navigation elements (true)
  • nextButton (Element|Function) Navigation next element (<div className="swiper-button-next" />)
  • prevButton (Element|Function) Navigation previous element (<div className="swiper-button-prev" />)
  • pagination (Boolean|Element|Function) Pagination is active by default, use false to hide. (<div className="swiper-pagination" />)
  • paginationClickable (Boolean) Enable clickable pagination.
  • scrollBar (Boolean|Element|Function) Scrollbar is hidden by default, use false to show.
  • onInitSwiper (Function) Function invoked every time swiper instance is initialized, invoked will swiper as first argument.
  • All event handlers are supported as well (i.e. onTouchMove, etc.)

note: The following props can be functions: nextButton, prevButton, pagination, and scrollBar. If functions, they will be invoked with the underlying Swiper instance as the one and only argument. They must return a renderable element.

Methods

  • swiper() Returns underlying swiper instance.

Slide

Props

  • onActive (Function) Invoked with swiper instance when Slide is active. Not invoked on initialization.

About

React wrapper around iDangerous swiper that auto-magically re-initializes

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published