Carousel component for InfernoJS.
See Demo.
npm i -s inferno-carousel js-carousel
On your main entry file:
import 'js-carousel';
Then, whenever you want to use the component.
import InfernoCarousel from 'inferno-carousel';
Then:
<InfernoCarousel animationSpeed={500} itemDuration={5000} swipeThreshold={150}>
<img src="path-to-image" />
<img src="path-to-image" />
<img src="path-to-image" />
<img src="path-to-image" />
<img src="path-to-image" />
</InfernoCarousel>
You can also specify a className
for the container of the carousel by providing a className
prop to it.
animationSpeed
is the speed (in terms of milliseconds) of the transition animation.itemDuration
is the amount of time (in terms of milliseconds) it has to wait before transitioning to the next item.swipeThreshold
is the sensitivity of swipe, the lower the number the more sensitive the swipe will be, you don't want it to be very high otherwise the users would have a hard time navigating around using swipe. You don't want it to be very low, otherwise a click might become enough to navigate around using swipe. I suggest starting at150
and tweaking it from there according to how you like it.
If you expect your images to change (you can see this on the demo), you should provide a key to the component and make sure that the key is different for every changes like so:
<InfernoCarousel
key={this.state.carouselImages.key}
animationSpeed={500}
itemDuration={5000}
swipeThreshold={150}>
{this.state.carouselImages.srcs.map(src => {
<img key={src} src={src} />;
})}
</InfernoCarousel>
// upon updating
this.setState({
carouselImages: {
// the key would be different from the last one
key: this.state.carouselImages.key + 1,
src
}
});
inferno-carousel
uses js-carousel.