Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2017, 10:07
Новичок на форуме
Отправить личное сообщение для Franchesko Посмотреть профиль Найти все сообщения от Franchesko
 
Регистрация: 14.02.2017
Сообщений: 1

Проблема на Macbook c trackpad
Добрый день!

Написал скрипт слайдера, который состоит из двух блоков - слева и справа, и при скроле листает эти блоки в разные стороны. Но есть проблема, на маке когда листаю с трекпада, бывают перескакивание между слайдами, я так понял, трекпад очень чувствительный и надо это как-то пофиксить. Флаг стоит, тайминг смены слайдеров стоит, но косяк такой есть (

Помогите решить проблему, пожалуйста

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);
					  		}
						});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47