Добрый день!
Написал скрипт слайдера, который состоит из двух блоков - слева и справа, и при скроле листает эти блоки в разные стороны. Но есть проблема, на маке когда листаю с трекпада, бывают перескакивание между слайдами, я так понял, трекпад очень чувствительный и надо это как-то пофиксить. Флаг стоит, тайминг смены слайдеров стоит, но косяк такой есть (
Помогите решить проблему, пожалуйста
var frameHeight = $(window).height();
var slider = $('.about-info__left');
var sliderContainer = $('.col-left-int');
var sliderItem = $('.about-info__item');
var sliderLeftContainer = $('.about-info__left-container');
var sliderRightContainer = $('.about-info__right-container');
var numberOfFrames = 3;
var currentFrame = 0;
var positionRight = numberOfFrames * frameHeight;
var loading = false;
var os = 'notOSX';
var mac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;
if (mac) {
var sleep_slide = 2400; //время ожидания между слайдами
} else {
var sleep_slide = 1000; //время ожидания между слайдами
}
// Устанавливаем высоту контейнеру и слайдам
slider.height(frameHeight);
sliderItem.height(frameHeight);
// Устанавливаем отрицательное значение для правого контейнера
sliderRightContainer.css('top',-positionRight);
sliderLeftContainer.css('top','0');
slider.mousewheel(function(event) {
event.preventDefault();
var delta = event.deltaY;
console.log(delta);
if(!loading) {
loading = true;
console.log(loading);
if (delta < 0) { // scrollDown
if (currentFrame < numberOfFrames) {
++currentFrame;
$.fn.fullpage.setMouseWheelScrolling(false);
$.fn.fullpage.setAllowScrolling(false);
// Определяем текущее значение смещения слайда
var mathScroll = currentFrame*frameHeight;
console.log(mathScroll);
sliderLeftContainer.css('top',-mathScroll);
// Получаем текущее значение TOP правого контейнера изменяем и возвращаем
sliderRightContainer.offset(function(i,val){
return {top:val.top + frameHeight, left:val.left};
});
} else {
$.fn.fullpage.setMouseWheelScrolling(true);
$.fn.fullpage.setAllowScrolling(true);
}
} else { // scrollUp
if (currentFrame > 0) {
--currentFrame;
var mathScroll = currentFrame*frameHeight;
console.log(mathScroll);
sliderLeftContainer.css('top',-mathScroll);
// Получаем текущее значение TOP правого контейнера изменяем и возвращаем
sliderRightContainer.offset(function(i,val){
return {top:val.top - frameHeight, left:val.left};
});
} else {
$.fn.fullpage.setMouseWheelScrolling(true);
$.fn.fullpage.setAllowScrolling(true);
}
}
var timerId = setTimeout(function() {
loading = false;
console.log(loading);
clearTimeout(timerId);
}, sleep_slide);
}
});