Ok I've narrowed the problem down to one part of the code:
Code:
if (touchEnd < 200) { // scroll on the y axis
if (touchY >= 100 && slider.currentSlide <= slider.slideCount -2) {
slider.slide.eq(slider.currentSlide)
.animate({"top": "-="+ (slider.slideHeight - touchY +100) +"px"}, 'fast');
slider.slide.eq(slider.currentSlide+1)
.animate({"top": "0px"}, 'fast');
slider.currentSlide++;
} else if (touchY <= -100 && slider.currentSlide >= 1){
slider.slide.eq(slider.currentSlide)
.animate({"top": "+="+ (slider.slideHeight + touchEnd +100) +"px"}, 'fast');
slider.slide.eq(slider.currentSlide - 1)
.animate({"top": "0px"}, 'fast');
slider.currentSlide--;
} else {
slider.slide.eq(slider.currentSlide).css('top', 0);
if (touchY > 0) {
slider.slide.eq(slider.currentSlide +1)
.css('top', slider.slideHeight +100 +'px');
} else {
slider.slide.eq(slider.currentSlide -1)
.css('top', slider.slideHeight +100 +'px');
}
}
}
It seems to be sliding the wrong slide in this part:
Code:
slider.slide.eq(slider.currentSlide - 1)
.animate({"top": "0px"}, 'fast');
slider.currentSlide--;
But I can't for the life of me work out why.