React image gallery is a React component for building image gallery and carousels
Features of react-image-gallery
- Mobile friendly
- Thumbnail navigation
- Responsive design
Live demo: linxtion.com/demo/react-image-gallery
npm install react-image-gallery
@import "../node_modules/react-image-gallery/src/image-gallery";
build/image-gallery.css
Need more example? See example/app.js
import ImageGallery from 'react-image-gallery';
class MyComponent extends React.Component {
handleImageLoad(event) {
console.log('Image loaded ', event.target)
}
handlePlay() {
this._imageGallery.play()
}
handlePause() {
this._imageGallery.pause()
}
render() {
const images = [
{
original: 'http://lorempixel.com/1000/600/nature/1/',
thumbnail: 'http://lorempixel.com/250/150/nature/1/',
originalClass: 'featured-slide',
thumbnailClass: 'featured-thumb',
originalAlt: 'original-alt',
thumbnailAlt: 'thumbnail-alt',
description: 'Optional description...'
srcSet: 'Optional srcset (responsive images src)'
size: 'Optional size (image size relative to the breakpoint)'
},
{
original: 'http://lorempixel.com/1000/600/nature/2/',
thumbnail: 'http://lorempixel.com/250/150/nature/2/'
},
{
original: 'http://lorempixel.com/1000/600/nature/3/',
thumbnail: 'http://lorempixel.com/250/150/nature/3/'
}
]
return (
<div>
<button onClick={this.handlePlay.bind(this)}>Play</button>
<button onClick={this.handlePause.bind(this)}>Pause</button>
<ImageGallery
ref={i => this._imageGallery = i}
items={images}
slideInterval={2000}
onImageLoad={this.handleImageLoad}/>
</div>
);
}
}
items
: (required) Array of objects, see example above,infinite
: Boolean, defaulttrue
- infinite sliding
lazyLoad
: Boolean, defaultfalse
showNav
: Boolean, defaulttrue
showThumbnails
: Boolean, defaulttrue
showBullets
: Boolean, defaultfalse
showIndex
: Boolean, defaultfalse
autoPlay
: Boolean, defaultfalse
disableThumbnailScroll
: Boolean, defaultfalse
- disables the thumbnail container from adjusting
slideOnThumbnailHover
: Boolean, defaultfalse
- slides to the currently hovered thumbnail
disableArrowKeys
: Boolean, defaultfalse
defaultImage
: String, defaultundefined
- an image src pointing to your default image if an image fails to load
- handles both slide image, and thumbnail image
onImageError
: Function,callback(event)
- overrides defaultImage
onThumbnailError
: Function,callback(event)
- overrides defaultImage
indexSeparator
: String, default' / '
, ignored ifshowIndex
is falseslideInterval
: Integer, default3000
startIndex
: Integer, default0
onImageLoad
: Function,callback(event)
onSlide
: Function,callback(currentIndex)
onPause
: Function,callback(currentIndex)
onPlay
: Function,callback(currentIndex)
onClick
: Function,callback(event)
play()
: continuous plays if image is not hoveredpause()
: pauses the slidesfullScreen()
: activates full screenslideToIndex(index)
: slides to a specific indexgetCurrentIndex()
: returns the current index
- Feel free to contribute and or provide feedback!
git clone https://github.com/xiaolin/react-image-gallery.git
npm install
npm start
Then open localhost:8001
in a browser.
MIT