Skip to content

baptistebriel/slider-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slider-manager

stable

Usage

NPM

npm install slider-manager --save

import Manager from 'slider-manager'
import gsap from 'gsap'

const slides = [].slice.call(document.querySelectorAll('.slides'))

const slider = new Manager({
    length: slides.length,
    loop: true,
    callback: (event) => {
        
        const index = event.current
        const previous = event.previous
        const down = event.direction === 'downwards'

        slider.animating = true

        this.videos[index].play()

        const windowheight = window.innerHeight
        const tl = new TimelineMax({ paused: true, onComplete: () => {

            this.videos[previous].pause()
            slider.animating = false
        }})

        tl.staggerTo(slides, 1, { cycle: {
            y: (loop) => index === loop ? 0 : loop < index ? -windowheight : windowheight
        }, ease: Expo.easeInOut}, 0, 0)

        tl.restart()
    }
})

slider.init()

options

  • el: HTMLElement to listen for scroll/touch events - defaults to document.body
  • direction: 'x' or 'y' - defaults to 'y'
  • loop: true of false - defaults to false
  • delta: delta limiter for scroll/touch events - defaults to 1
  • limitInertia: if set to true, leverage the limitInertia option of virtual-scroll to distinguish between user-initiated and inertial scrolling. Prevents callback from firing multiple times per scroll - defaults to false.
  • callback: function called when user has swiped or scrolled

methods

  • init: add event listeners
  • goTo(index): goes to the slide index
  • destroy: remove event listeners

changelog

  • 1.0.6: added direction to options, so it listens to either deltaX or deltaY depending on the desired option
  • 1.1.6: added limitInertia to options, that when set to true fixes a behavior where multiple callbacks are fired for a single user-initiated scroll due to inertial scrolling.

License

MIT, see LICENSE.md for details.

About

simple wrapper to create sliders focused on animations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published