Skip to content

filoblu/fb-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 fb-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

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published