slim-slider
Version:
minimal vanilla carousel
69 lines (56 loc) • 2.59 kB
Markdown
<p align="middle"><img src="https://cloud.githubusercontent.com/assets/1451125/23154097/7c0b518a-f825-11e6-9bd4-c26ab0e2a55f.png" alt="slimslider"/><p>
<p align="middle">Light-weight, Non-jquery and RTL-supported Slider.</p>
## How to initialize
Initializing by creating a `new` instance, saving it in a variable is **optional** i'e `let slider = new SlimSlider({...})`, but can come in handy as you will see later.
```js
let Slider = new SlimSlider({
selector: '.slim-slides',
childsClassName :'.slim-slide',
dir: 'ltr',
showPointers : true,
})
```
## Options
available options to pass to initialize SlimSlider.
```js
const defaults = {
timing : 400, // Integer: represents the animation value between slides
childsClassName : '.slim-slide', // String : slider child slides elements
dir: 'ltr', // String: Slider direction
threshold: 10, // Integer: refer to hammerjs docs
showButtons:false, // Boolean: show or hide Next / Prev buttons
infinite:false, // Boolean: startover when the slider reaches the end.
showPointers : true, // Boolean: show or hide pager pointers.
showThumbnails:true, // Boolean: show or hide Thumbnails.
autoPlay: false, // Boolean: Slides will automatically transition.
autoPlayTimer: 3000, // Integer: autoplay interval timeout.
itemsPerSlide : 1, // Integer: how many item per slide.
}
```
## `data-thumb`
for now you can provide thumbs through data attribute, check the demo.
## `this.goToNext`, `this.goToPrevious`
```js
let Slider = new Slider({...})
Slider.goToNext()
Slider.goToPrevious()
```
## `setPan()` to temporarly stop the slider.
A method that disables panning on the slider so another party can take over the control.
i.e: we've been using SlimSlider alongside with [PhotoViewJs](https://github.com/namshi/Photoviewjs) and we want in some situation to give control to it of Panning, so simply you can `setPan(false)` to turn off (without destroying) slider, and `setPan(true)` to give control back to it.
## Events
`after.slim.init`: fires after slider initiation.
`after.slim.slide`: fires after each slide.
on the event object, `SlimSlider` pushes details wich has `current` that tells the current slide number.
```js
carouselElem.addEventListener('after.slim.slide', (e) => {
console.log(e) // e.details : {current: 2}
});
```
#TODOS
- [x] decouple class naming and functionality.
- [x] Dispatch Events with currentSlide.
- [x] implement the pagination out of the box.
- [x] Image resizing and initalizing to be done internally.
- [ ] Minimal Styles.
- [ ] Publish it!