1.1.4 • Published 6 years ago
rc-horizontal-slider v1.1.4
rc-horizontal-slider
Simple lightweight and customizable horizontal slider.
install
Usage
import { Slider } from "rc-horizontal-slider";
function App() {
const [items, setItems] = useState(generateItems());
return (
<Slider
uniqueProp='id'
items={items}
ItemComponent={Item}
itemComponentProps={{ example: "example" }}
onLastItemReached={page => {
console.log(page);
setItems([...items, ...generateItems()]);
}}
defaultSpace='120px'
spaceBetweenitems='40px'
moveSpeed={3}
/>
);
}
/**
* item -> The item data
* parentProps -> the props passed in "itemComponentProps"
* index -> the index of the item
*/
function Item({ item, parentProps, index }) {
return (
<div className='item'>
<div className='image' style={{ backgroundImage: `url(${item.image})` }}></div>
<div className='content'>
<h4>{item.title + (index + 1)}</h4>
</div>
</div>
);
}
const generateItems = () => [
{
id: "1_" + Date.now(),
image: "https://picsum.photos/200/300",
title: "Title"
},
{
id: "2_" + Date.now(),
image: "https://picsum.photos/200/300",
title: "Title"
},
{
id: "3_" + Date.now(),
image: "https://picsum.photos/200/300",
title: "Title"
},
{
id: "4_" + Date.now(),
image: "https://picsum.photos/200/300",
title: "Title"
},
{
id: "5_" + Date.now(),
image: "https://picsum.photos/200/300",
title: "Title"
},
{
id: "6_" + Date.now(),
image: "https://picsum.photos/200/300",
title: "Title"
}
];API
Properties
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| items | array | No | true | Array if items (objects) |
| uniqueProp | string | No | false | A unique prop used for key. If not found index will be used instead |
| ItemComponent | function | No | true | The component that renders each slide |
| itemComponentProps | object | {} | true | The props that are going to be passed to the ItemComponent as parentProps |
| onLastItemReached | function | () => {} | false | Used for lazy loading |
| defaultSpace | string | 20px | false | The left and right space |
| spaceBetweenitems | string | 20px | false | The space between each item |
| moveSpeed | number | 1.5 | false | Move speed (only for desktop) |
ItemComponent Props
| Name | Type | Description |
|---|---|---|
| index | number | The index of the item |
| parentProps | object | The data passed in itemComponentProps |
| item | object | The item data |
License
rc-horizontal-slider is released under the MIT license.
