Git Product home page Git Product logo

react-view-pager's Introduction

React View Pager (Prerelease)

Dependency Status

View-Pager/Slider/Carousel powered by React Motion.

react-motion-slider

Note before using

Use at your own risk, API's are subject to change. It's been fairly stable these last few months, but still might change slightly. Once the outstanding issues are fixed I will release 1.0.0.

Usage

yarn add react-view-pager

npm install react-view-pager --save

<script src="https://unpkg.com/react-view-pager/dist/react-view-pager.js"></script>
(UMD library exposed as `ReactViewPager`)

Example

import { ViewPager, Frame, Track, View } from 'react-view-pager'

<ViewPager tag="main">
  <Frame className="frame">
    <Track
      ref={c => this.track = c}
      viewsToShow={2}
      infinite
      className="track"
    >
      <View className="view">1</View>
      <View className="view">2</View>
      <View className="view">3</View>
      <View className="view">4</View>
    </Track>
  </Frame>
  <nav className="pager-controls">
    <a
      className="pager-control pager-control--prev"
      onClick={() => this.track.prev()}
    >
      Prev
    </a>
    <a
      className="pager-control pager-control--next"
      onClick={() => this.track.next()}
    >
      Next
    </a>
  </nav>
</ViewPager>

ViewPager Props

tag: PropTypes.string

The HTML tag for this element. Defaults to div.

Frame Props

tag: PropTypes.string

The HTML tag for this element. Defaults to div.

autoSize: PropTypes.oneOf([true, false, 'width', 'height'])

Animates the wrapper's width and/or height to fit the current view. Defaults to false.

accessibility: PropTypes.bool

Enable tabbing and keyboard navigation.

springConfig: React.PropTypes.objectOf(React.PropTypes.number)

Accepts a React Motion spring config.

Track Props

tag: PropTypes.string

The HTML tag for this element. Defaults to div.

currentView: PropTypes.any

Specify the index or key of a view to move to that view. Use with onViewChange to control the state of the pager.

viewsToShow: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])])

The number of views visible in the frame at one time. Defaults to 1. Use auto to respect the views's natural or defined dimensions.

viewsToMove: PropTypes.number

The number of views to move upon using prev and next methods. Defaults to 1.

align: PropTypes.number

Pass any number to offset the view from the start of the track. For example, 0 aligns to the start of the track, 0.5 to the center, and 1 aligns to the end.

contain: PropTypes.bool

Prevents empty space from showing in frame. Defaults to false.

infinite: PropTypes.bool

Prepare your pager for intergalactic space travel. Allows the track to wrap to the beginning/end when moving to a view. To infinity and beyond!

instant: PropTypes.bool

Move to a view instantly without any animation. This will control the internal instant state inside of the component.

axis: PropTypes.oneOf(['x', 'y'])

Which axis the track moves on. Defaults to x.

animations: PropTypes.array

Define a limitless array of animation stops. Each object in the array requires a prop and stops property along with an optional unit property.

// scale and fade views as they enter and leave
const animations = [{
  prop: 'scale',
  stops: [
    [-200, 0.85],
    [0, 1],
    [200, 0.85]
  ]
}, {
  prop: 'opacity',
  stops: [
    [-200, 0.15],
    [0, 1],
    [200, 0.15]
  ]
}]

swipe: PropTypes.oneOf([true, false, 'touch', 'mouse'])

Enable touch and/or mouse dragging. Defaults to true.

swipeThreshold: PropTypes.number

The amount the user must swipe to advance views. (frameWidth * swipeThreshold). Defaults to 0.5.

flickTimeout: PropTypes.number

The amount of time in milliseconds that determines if a swipe was a flick or not.

rightToLeft: PropTypes.bool (Coming Soon)

lazyLoad: PropTypes.bool (Coming Soon)

springConfig: React.PropTypes.objectOf(React.PropTypes.number)

Accepts a React Motion spring config.

onSwipeStart: PropTypes.func

Prop callback fired before swipe.

onSwipeMove: PropTypes.func

Prop callback fired during swipe.

onSwipeEnd: PropTypes.func

Prop callback fired after swipe.

onScroll: PropTypes.func

Prop callback fired when track is scrolling. Useful for parallax or progress bars.

onViewChange: PropTypes.func

Prop callback fired when view changes. Passes back the newly selected indicies.

onRest: PropTypes.func

Prop callback fired after track scrolling animation settles.

Public methods

prev

Moves to the previous view.

next

Advances to the next view.

scrollTo

Scroll to a view by it's index or key.

View Props

tag: PropTypes.string

The HTML tag for this element. Defaults to div.

Running Locally

clone repo

git clone [email protected]:souporserious/react-view-pager.git

move into folder

cd ~/react-view-pager

install dependencies

npm install

run dev mode

npm run dev

open your browser and visit: http://localhost:8080/

react-view-pager's People

Contributors

azangru avatar hanford avatar ju1ius avatar juhaelee avatar oliviertassinari avatar shanebonham avatar souporserious avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.