sadieff
@sadieff
Нажимаю клавиши в нужной последовательности

Как отловить событие прокрутки колесика мыши внутри блока?

Есть jcarousel и задача: чтобы карусель листалась при прокрутке колесиком мыши. Сделал вот так:
$('.catalog_b .navigation').hover(function(){
				  function addHandler(object, event, handler) {
					if (object.addEventListener) {
					  object.addEventListener(event, handler, false);
					}
					else if (object.attachEvent) {
					  object.attachEvent('on' + event, handler);
					}
				  }
				  addHandler(window, 'DOMMouseScroll', wheel);
				  addHandler(window, 'mousewheel', wheel);
				  addHandler(document, 'mousewheel', wheel);
				  function wheel(event) {
					var delta; 
					event = event || window.event;
					if (event.wheelDelta) { 
					  delta = event.wheelDelta / 120;
					  if (window.opera) delta = -delta;
					}
					else if (event.detail) {
					  delta = -event.detail / 3;
					}
					if (event.preventDefault) event.preventDefault();
					event.returnValue = false;
					console.log(delta);
					if(delta == 1){
						$('.catalog_b .navigation .carousel').jcarousel('scroll', '-=1');
					}
					else{
						$('.catalog_b .navigation .carousel').jcarousel('scroll', '+=1');
					}
				  }
			});

При наведении на блок прокрутка работает, события отлавливаются. Но когда курсор покидает блок .catalog_b .navigation, событие до сих пор обрабатывается и не дает прокручивать страницу, а все так же листает карусель. Как это можно исправить?
  • Вопрос задан
  • 4383 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы