Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Lightgallery | 6,050 | 122 | 39 | a day ago | 114 | November 27, 2023 | 37 | other | TypeScript | |
A customizable, modular, responsive, lightbox gallery plugin. | ||||||||||
Lightgallery.js | 5,265 | 54 | 28 | 2 months ago | 15 | October 29, 2020 | 1 | other | JavaScript | |
Full featured JavaScript image & video gallery. No dependencies | ||||||||||
React Image Gallery | 3,532 | 517 | 126 | 2 months ago | 114 | July 30, 2023 | 20 | mit | JavaScript | |
React carousel image gallery component with thumbnail support 🖼 | ||||||||||
Justified Gallery | 1,594 | 28 | 5 | a year ago | 6 | May 21, 2020 | 119 | mit | HTML | |
Javascript library to help creating high quality justified galleries of images. Used by thousands of websites as well as the photography community 500px. | ||||||||||
Pigallery2 | 1,490 | 2 | 18 hours ago | 12 | December 30, 2019 | 122 | mit | TypeScript | ||
A fast directory-first photo gallery website, with rich UI, optimized for running on low resource servers (especially on raspberry pi) | ||||||||||
Lightgallery Desktop | 915 | 4 years ago | 18 | JavaScript | ||||||
A modern, electron and nodejs based image viewer for Mac, Windows and Linux. | ||||||||||
React Grid Gallery | 888 | 163 | 25 | a month ago | 49 | October 13, 2023 | 21 | mit | TypeScript | |
Justified image gallery component for React | ||||||||||
Photobox | 725 | 5 years ago | 1 | September 25, 2015 | 16 | agpl-3.0 | JavaScript | |||
A lightweight CSS3 image viewer that is pretty to look and and easy to use | ||||||||||
Nanogallery2 | 655 | 7 | 3 | 9 months ago | 27 | January 06, 2021 | 79 | JavaScript | ||
a modern photo / video gallery and lightbox [JS library] | ||||||||||
Fgallery Iphone | 588 | 7 years ago | 23 | Objective-C | ||||||
Objective-C based gallery for iPhones |
linxtion.com/demo/react-image-gallery
React image gallery is a React component for building image galleries and carousels
React Image Gallery requires React 16.0.0 or later.
npm install react-image-gallery
# scss file import
@import "~react-image-gallery/styles/scss/image-gallery.scss";
# css file import
@import "~react-image-gallery/styles/css/image-gallery.css";
# js file import (using webpack)
import "react-image-gallery/styles/css/image-gallery.css";
Need more example? See example/app.js
import ImageGallery from "react-image-gallery";
// import stylesheet if you're not already using CSS @import
import "react-image-gallery/styles/css/image-gallery.css";
const images = [
{
original: "https://picsum.photos/id/1018/1000/600/",
thumbnail: "https://picsum.photos/id/1018/250/150/",
},
{
original: "https://picsum.photos/id/1015/1000/600/",
thumbnail: "https://picsum.photos/id/1015/250/150/",
},
{
original: "https://picsum.photos/id/1019/1000/600/",
thumbnail: "https://picsum.photos/id/1019/250/150/",
},
];
class MyGallery extends React.Component {
render() {
return <ImageGallery items={images} />;
}
}
items
: (required) Array of objects, see example above,
original
- image src urlthumbnail
- image thumbnail src urlfullscreen
- image for fullscreen (defaults to original)originalHeight
- image height (html5 attribute)originalWidth
- image width (html5 attribute)loading
- image loading. Either "lazy" or "eager" (html5 attribute)thumbnailHeight
- image height (html5 attribute)thumbnailWidth
- image width (html5 attribute)thumbnailLoading
- image loading. Either "lazy" or "eager" (html5 attribute)originalClass
- custom image classthumbnailClass
- custom thumbnail classrenderItem
- Function for custom rendering a specific slide (see renderItem below)renderThumbInner
- Function for custom thumbnail renderer (see renderThumbInner below)originalAlt
- image altthumbnailAlt
- thumbnail image altoriginalTitle
- image titlethumbnailTitle
- thumbnail image titlethumbnailLabel
- label for thumbnaildescription
- description for imagesrcSet
- image srcset (html5 attribute)sizes
- image sizes (html5 attribute)bulletClass
- extra class for the bullet of the iteminfinite
: Boolean, default true
lazyLoad
: Boolean, default false
showNav
: Boolean, default true
showThumbnails
: Boolean, default true
thumbnailPosition
: String, default bottom
top, right, bottom, left
showFullscreenButton
: Boolean, default true
useBrowserFullscreen
: Boolean, default true
useTranslate3D
: Boolean, default true
translate
instead of translate3d
css property to transition slidesshowPlayButton
: Boolean, default true
isRTL
: Boolean, default false
showBullets
: Boolean, default false
showIndex
: Boolean, default false
autoPlay
: Boolean, default false
disableThumbnailScroll
: Boolean, default false
disableKeyDown
: Boolean, default false
disableSwipe
: Boolean, default false
disableThumbnailSwipe
: Boolean, default false
onErrorImageURL
: String, default undefined
indexSeparator
: String, default ' / '
, ignored if showIndex
is false
slideDuration
: Number, default 450
swipingTransitionDuration
: Number, default 0
slideInterval
: Number, default 3000
slideOnThumbnailOver
: Boolean, default false
flickThreshold
: Number (float), default 0.4
swipeThreshold
: Number, default 30
stopPropagation
: Boolean, default false
startIndex
: Number, default 0
onImageError
: Function, callback(event)
onThumbnailError
: Function, callback(event)
onThumbnailClick
: Function, callback(event, index)
onBulletClick
: Function, callback(event, index)
onImageLoad
: Function, callback(event)
onSlide
: Function, callback(currentIndex)
onBeforeSlide
: Function, callback(nextIndex)
onScreenChange
: Function, callback(boolean)
onPause
: Function, callback(currentIndex)
onPlay
: Function, callback(currentIndex)
onClick
: Function, callback(event)
onTouchMove
: Function, callback(event) on gallery slide
onTouchEnd
: Function, callback(event) on gallery slide
onTouchStart
: Function, callback(event) on gallery slide
onMouseOver
: Function, callback(event) on gallery slide
onMouseLeave
: Function, callback(event) on gallery slide
additionalClass
: String,
renderCustomControls
: Function, custom controls rendering
_renderCustomControls() {
return <a href='' className='image-gallery-custom-action' onClick={this._customAction.bind(this)}/>
}
renderItem
: Function, custom item rendering
[{thumbnail: '...', renderItem: this.myRenderItem}]
ImageGallery
to completely override renderItem
, see source for renderItem implementationrenderThumbInner
: Function, custom thumbnail rendering
[{thumbnail: '...', renderThumbInner: this.myRenderThumbInner}]
ImageGallery
to completely override _renderThumbInner
, see source for referencerenderLeftNav
: Function, custom left nav component
<LeftNav />
onClick
callback that will slide to the previous itemdisabled
boolean for when the nav is disabledrenderLeftNav: (onClick, disabled) => (
<LeftNav onClick={onClick} disabled={disabled} />
);
renderRightNav
: Function, custom right nav component
<RightNav />
onClick
callback that will slide to the next itemdisabled
boolean for when the nav is disabledrenderRightNav: (onClick, disabled) => (
<RightNav onClick={onClick} disabled={disabled} />
);
renderPlayPauseButton
: Function, play pause button component
<PlayPause />
onClick
callback that will toggle play/pauseisPlaying
boolean for when gallery is playingrenderPlayPauseButton: (onClick, isPlaying) => (
<PlayPause onClick={onClick} isPlaying={isPlaying} />
);
renderFullscreenButton
: Function, custom fullscreen button component
<Fullscreen />
onClick
callback that will toggle fullscreenisFullscreen
argument for when fullscreen is active renderFullscreenButton: (onClick, isFullscreen) => (
<Fullscreen onClick={onClick} isFullscreen={isFullscreen} />
),
useWindowKeyDown
: Boolean, default true
true
, listens to keydown events on window (window.addEventListener)false
, listens to keydown events on image gallery element (imageGalleryElement.addEventListener)The following functions can be accessed using refs
play()
: plays the slidespause()
: pauses the slidestoggleFullScreen()
: toggles full screenslideToIndex(index)
: slides to a specific indexgetCurrentIndex()
: returns the current indexEach pull request (PR) should be specific and isolated to the issue you're trying to fix. Please do not stack features, chores, refactors, or enhancements in one PR. Describe your feature/implementation in the PR. If you're unsure whether it's useful or if it involves a major change, please open an issue first and seek feedback.
git clone https://github.com/xiaolin/react-image-gallery.git
cd react-image-gallery
npm install --global yarn
yarn install
yarn start
Then open localhost:8001
in a browser.
MIT