Created
November 15, 2016 23:24
-
-
Save drwpow/f5b05f46399182383a16ff9207dbfbc4 to your computer and use it in GitHub Desktop.
HammerJS Slider Part 3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sliderEl = document.querySelector('.slider'); | |
var slideCount = 3; | |
var activeSlide = 0; // NEW: the current slide # (0 = first) | |
var sliderManager = new Hammer.Manager(sliderEl); | |
sliderManager.add( new Hammer.Pan({ threshold: 0, pointers: 0 }) ); | |
sliderManager.on('pan', function(e) { | |
var percentage = 100 / slideCount * e.deltaX / window.innerWidth; | |
var transformPercentage = percentage - 100 / slideCount * activeSlide; // NEW | |
sliderEl.style.transform = 'translateX( ' + transformPercentage + '% )'; | |
if(e.isFinal) { // NEW: this only runs on event end | |
if(percentage < 0) | |
goToSlide(activeSlide + 1); | |
else if(percentage > 0) | |
goToSlide(activeSlide - 1); | |
else | |
goToSlide(activeSlide); | |
} | |
}); | |
// NEW: function that changes the slide | |
var goToSlide = function(number) { | |
if(number < 0) | |
activeSlide = 0; | |
else if(number > slideCount - 1) | |
activeSlide = slideCount - 1 | |
else | |
activeSlide = number; | |
var percentage = -(100 / slideCount) * activeSlide; | |
sliderEl.style.transform = 'translateX(' + percentage + '%)'; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment