Simple ImageSlider Component for ReactJS v17
- Just Two Elements will be used. (for display images)
- Support GPU Render, by default.
- Support Image Preload.
- Support SSR. ( server-side-rendering )
- Selectable Navigation Styles.
// npm
npm install react-simple-image-slider --save
// yarn
yarn add react-simple-image-slider
import SimpleImageSlider from "react-simple-image-slider";
const images = [
  { url: "images/1.jpg" },
  { url: "images/2.jpg" },
  { url: "images/3.jpg" },
  { url: "images/4.jpg" },
  { url: "images/5.jpg" },
  { url: "images/6.jpg" },
  { url: "images/7.jpg" },
];
const App = () => {
  return (
    <div>
      <SimpleImageSlider
        width={896}
        height={504}
        images={images}
        showBullets={true}
        showNavs={true}
      />
    </div>
  );
}
If You want to see more detail source,
| Name | Type | Required | Description | Default | 
|---|---|---|---|---|
| width | Number | Required | Image Slider Width | |
| height | Number | Required | Image Slider Height | |
| images | Array | Required | Images, Array Elements should be like this structure, { url: "" } or string[] | |
| style | String | Optional | css object | |
| slideDuration | Number | Optional | css transition-duration property | 0.5 | 
| navStyle | Number | Optional | Arrow Navgation Style, 1 or 2 | 1 | 
| navSize | Number | Optional | Arrow Size | 50 | 
| navMargin | Number | Optional | Arrow Margin | 30 | 
| showNavs | Boolean | Required | Toggle Arrow | |
| startIndex | Number | Optional | start Index of Slide | 0 | 
| showBullets | Boolean | Required | Toggle Bullets | true | 
| loop | Boolean | Optional | looping slider | true | 
| autoPlay | Boolean | Optional | auto play | false | 
| autoPlayDelay | Boolean | Optional | auto play delay | 2.0 | 
| useGPURender | Boolean | Optional | Toggle GPU Render | true | 
| bgColor | String | Optional | slider container's css background-color property | #000000 | 
| onClick | Function | Optional | Image Click Callback function, onClick = (idx, event) => { }idx : number : clicked bullet index (begin from 0) | |
| onClickNav | Function | Optional | Arrow Navigation Callback function, onClickNav = (toRight) => { }toRight : Boolean : slide direction | |
| onClickBullets | Function | Optional | Bullets Callback function, onClickBullets = (idx) => { }idx : Number : clicked bullet index (begin from 0) | |
| onStartSlide | Function | Optional | Slide Transition Start function, onStartSlide = (idx, length) => { }idx : Number : start index (begin from 1) length : Number : image length | |
| onCompleteSlide | Function | Optional | Slide TransitionEnd Callback function, onCompleteSlide = (idx, length) => { }idx : Number : start index (begin from 1) length : Number : image length | 
If You want to see more detail,
- can customize by className with !important;
.your-app {
  .rsis-container {
    // do something
  }
}
.your-app {
  .rsis-image {
    background-size: contain !important;
  }
}
- ./example/: demo site souce for testing component
- ./src/: image slider component source
- ./dist/: image slider component distribution
- ./babelrc: babel configure. (version 7.x)
- ./webpack.config.js: webpack configure. (version 4.x)
- ./rollup.config.js: rollup configure.
// npm
npm run example         // run a test app(demo) by webpack dev server
npm run build           // build the image slider component by rollup
npm run dev     // build watch mode
// yarn
yarn example
yarn build
yarn dev
If you want to run a test app, should build before do that.
After run example by webpack dev server,
open http://localhost:8080/ in a browser
MIT
