React Carousel Slider
![npm package](https://img.shields.io/npm/v/react-carousel-slider.png?style=flat-square)
A React component that endeavors to provide flexbility for customizing carousel/slider.
Installation
Install it from npm.
npm install react-carousel-slider
As ES module:
import CarouselSlider from "react-carousel-slider"
As CommonJS module:
var CarouselSlider = require("react-carousel-slider")
The UMD build:
<script src="https://unpkg.com/react-carousel-slider/umd/react-carousel-slider.js"></script>
Demo & Examples
carr1005.github.io/react-carousel-slider/index.html
Usage
We could render a component with the slideItems
prop which accepts an array of objects with the specific simple sturcture and keys in default style.
import React, {Component} from 'react'
import CarouselSlider from 'react-carousel-slider';
class App extends Component {
render() {
let data = [
{
des: "1",
imgSrc: "https://i.imqur.com/yourImage.jpg"
},
{
des: "2",
imgSrc: "https://i.imqur.com/yourImage2.jpg"
}
];
return <CarouselSlider slideItems = {data} />;
}
}
Or give an array of your own regular React elements to slideCpnts
prop, this lets our slide have availability to contain a clickable link. Even cooperating with <Link>
component of React Router library for client side routing is possible.
import React, {Component} from 'react'
import CarouselSlider from 'react-carousel-slider';
import {BrowserRouter as Router, Link } from 'react-router-dom';
class App extends Component {
render() {
let jsonData = require('./slidesExample.json');
let items = jsonData.items.map((item, index) =>
<Link to = {'/' + item.des} >
<img src = {item.imgSrc} ></img>
<p>{item.des}</p>
</Link>
);
return (<Router>
<CarouselSlider slideCpnts = {items} />
</Router>);
}
}
Allowable Props
[
{
des: "1",
imgSrc: "https://i.imqur.com/yourImage.jpg"
},
{
des: "2",
imgSrc: "https://i.imqur.com/yourImage2.jpg"
}
]
slidesCpnts
- accepts an array of regular React elements, the <img></img>
element and available image source are required, we have the default style for <p>
block, override it by specifying your own with using inline-styles.
let textBoxStyle = {
width: "50%",
background: "transparent",
textAlign: "right",
color: "black"
};
let items = jsonData.items.map((item, index) =>
<div>
<img src = {item.imgSrc} ></img>
<p style = {textBoxStyle} >{item.des}</p>
</div>
);
All props below are optional, default setting is applied if we don't specify ours.
The Key without prefixng a * is pure css property, what be filled in column Value are just recommended because of the anticipated purpose, feel free to try if things are under control.
- [
manner
] - [
buttonSetting
] - [
lBtnCpnt
] - [
rBtnCpnt
] - [
sliderBoxStyle
] - [
itemsStyle
] - [
textBoxStyle
]
Full Documentation on Github