Configuration
Class names
{object} classNames
- Mapping of class names to be used by the plugin.
{string} [classNames.pluginLoaded='pluginLoaded']
- Applied when the plugin has been loaded
{string} [classNames.init='init']
- Applied when the plugin has been initialized. Removed on first interaction.
{string} [classNames.slides='slides']
- This element will be used to track touches. This is the wrapper around the slides.
{string} [classNames.slide='slide']
- Selector for each single slide.
{string} [classNames.current='current']
- Applied to the currently visible slide
{string} [classNames.previous='previous']
- Applied to the previous slide in the queue
{string} [classNames.next='next']
- Applied to the next slide in the queue
{object} addClasses
- Map of class names to be added to slides.
{object} [addClasses.previous=true]
- Sets previous class name to slides.
{object} [addClasses.current=true]
- Sets current class name to slides.
{object} [addClasses.next=true]
- Sets next class name to slides.
{object} addMultiClasses
- Map of class names to be added to slides using a counter.
{object} [addMultiClasses.previous=undefined]
- Sets previous class name to slides using a counter.
{object} [addMultiClasses.current]
- Sets current class name to slides using a counter.
{object} [addMultiClasses.next=undefined]
- Sets next class name to slides using a counter.
Options
{boolean} [enableTouch=true]
- Enable touch interaction.
{boolean} [enableSwipe=true]
- Enable mouse/drag/swipe interaction.
{boolean} [loop=false]
- Enable looping slides.
{number} [speed=250]
- Animation duration when using paging.
{number} [spring=100]
- Animation duration when snapping.
{number} [snapBackAt=0.25]
- Amount of distance needed to snap. [0, 1]
{number} [threshold=10]
- Threshold of pixels until the sliding mechanisms is triggered.
{number} [initialSlide=0]
- Initially visible slide
{number} [visibleSlides=1]
- Amount of visible slides
{number} [slideBy=1]
- Amount of slides to slide on interaction
Loop
[loop=true] {boolean}
Looping can be disabled with this flag.
Warning! This does not work well when
visibleSlides > 1
.
Issue reports welcome
Contributions welcome
import {belt} from 'paraglider/presets'
belt(document.querySelector('.belt'), {loop: false})
Visible slides
[visibleSLides=1] {number}
Show more than one slide.
Warning! This does not work well when
loop === false
.
Issue reports welcome
Contributions welcome
import {multiBelt} from 'paraglider/presets'
multiBelt(document.querySelector('.belt'), {visibleSlides: 3})
Amount of next slides
[slideBy=1] {number}
Allows sliding by more than one item.
Warning! Requires
visibleSlides >= slideBy
.
import {multiBelt} from 'paraglider/presets'
multiBelt(document.querySelector('.belt'), {visibleSlides: 3})
Enable Touch
[enableSwipe=true] {boolean}
Disable or enable swiping with touch.
import {belt} from 'paraglider/presets'
belt(document.querySelector('.belt'), {enableTouch: false})
Enable Swipe
[enableSwipe=true] {boolean}
Disable or enable swiping with the mouse.
import {belt} from 'paraglider/presets'
belt(document.querySelector('.belt'), {enableSwipe: false})
Initial slide
[initialSlide=0] {boolean}
Set the initially active slide
import {belt} from 'paraglider/presets'
belt(document.querySelector('.belt'), {initialSlide: 1})
Threshold
[threshold=10] {number}
Pixel value before swiping will activate (helps on iOS to optimize scrolling).
Warning! Creates a minor jump depending on the value.
10px seems to be default for most developers and similar plugins.
import {multiBelt} from 'paraglider/presets'
multiBelt(document.querySelector('.belt'), {threshold: 5})
Snap back
[snapBackAt=0.25] {number}
Progress needed to snap to the next slide. [0, 1]
import {multiBelt} from 'paraglider/presets'
multiBelt(document.querySelector('.belt'), {snapBackAt: 0.5})
Speed and duration
[speed=250] {number}
Speed defines the time the animation takes when nextSlide
or prevSlide
are called.
[spring=100] {number}
Spring defines the time the animation takes when touch or mouse interaction is stopped (touchend, mouseup)
import {belt} from 'paraglider/presets'
belt(document.querySelector('.belt'), {speed: 1000, spring: 300})
Add classes
addClasses {object}
previous {boolean}
current {boolean}
next {boolean}
Allows defining if class names should be added to the slides.
addMultiClasses {object}
previous {boolean}
current {boolean}
next {boolean}
Allows defining if class names should be added to the slides if multiple are visible.
current__0, current__1, ...
import {belt} from 'paraglider/presets'
belt(document.querySelector('.belt'), {addClasses: {current: true}})
Callbacks
{(null|onInit)} [onInit=null]
- Callback when the slider has been created.
{(null|onDestroy)} [onDestroy=null]
- Callback when the slider has been destroyed.
{(null|onSlide)} [onSlide=null]
- Callback while the slider is moving.
{(null|onEnd)} [onEnd=null]
- Callback while the slider stopped moving.
Initialized
[onInit=null] {null|function}
Defaults to null and does nothing. Can be a function with parameters
import Glider from 'paraglider'
const glider = new Glider({
onInit({previous, current, next, rest}, slides, options) {
slides[current].style.transform = 'translate3d(0,0,0)'
}
})
Destroyed
[onDestroy=null] {null|function}
Defaults to null and does nothing. Can be a function
import Glider from 'paraglider'
const glider = new Glider({
onDestroy() {
// ...
}
})
Sliding
[onSlide=null] {null|function}
Defaults to null and does nothing. Can be a function with parameters
import Glider from 'paraglider'
const glider = new Glider({
onSlide(progress, {previous, current, next, rest}, slides, options) {
slides[current].style.transform = 'translate3d(${100 * progress}%,0,0)'
// ...
}
})
Finished
[onEnd=null] {null|function}
Defaults to null and does nothing. Can be a function with parameters
import Glider from 'paraglider'
const glider = new Glider({
onEnd({previous, current, next, rest}, slides, options) {
slides[current].style.transform = 'translate3d(0,0,0)'
}
})
© 2017 by Gregor Adams