Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2013, 15:49
Аспирант
Отправить личное сообщение для MadChild Посмотреть профиль Найти все сообщения от MadChild
 
Регистрация: 22.10.2012
Сообщений: 34

Отловить scroll колесиком
Ребят, подскажите как отловить скролл колесиком, НО!!!
Надо точно знать в какую сторону идет скролл вверх или вниз и взаивисимости от этого выполнить опредленную функцию, а scroll не выполнять
Спасибо))
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2013, 16:17
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

тестил в хроме:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 
<html>
	<head>
		<script type="text/javascript">
window.onmousewheel = function(e)
	{
	var delta = e.deltaY || e.detail || e.wheelDelta;

	console.log(delta);
	e.preventDefault();
	e.stopPropagation();
	//return false;
	}
		</script>
	</head>
	<body>
	<div style="width: 100px; height: 1000px;">
	</div>
	</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2013, 16:50
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

http://forum.php.su/topic.php?forum=46&topic=27
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2013, 20:26
Аспирант
Отправить личное сообщение для MadChild Посмотреть профиль Найти все сообщения от MadChild
 
Регистрация: 22.10.2012
Сообщений: 34

skrudjmakdak, идея клевая, но в FireFox'е так и не завелся (((
nerv_, к сожалению не то что надо(((
Ответить с цитированием
  #5 (permalink)  
Старый 05.08.2013, 20:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Нужно ловить три события
wheel - новое, описано в HTML5 (поддерживается IE9+, FF последними)
mousewheel - старое, поддерживается почти всеми браузерами, кроме FF
DOMMouseScroll - поддерживается старыми версиями FF

Впринципе, можно ограничиться только двумя последними, но в перспективе лучше использовать wheel.
Ответить с цитированием
  #6 (permalink)  
Старый 05.08.2013, 20:48
Аспирант
Отправить личное сообщение для MadChild Посмотреть профиль Найти все сообщения от MadChild
 
Регистрация: 22.10.2012
Сообщений: 34

Нашел рабочий скрипт

window.onload = function() {
		    if (window.addEventListener) window.addEventListener("DOMMouseScroll", mouse_wheel, false);
		    window.onmousewheel = document.onmousewheel = mouse_wheel;
		}
			
		var mouse_wheel = function(event) {
		    if (false == !!event) event = window.event;
		    var direction = ((event.wheelDelta) ? event.wheelDelta/120 : event.detail/-3) || false;
		}

если direction>0, то крутимся вверх
а если меньше 0, то вниз
Всем спасибо))
Ответить с цитированием
  #7 (permalink)  
Старый 05.08.2013, 22:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

MadChild,
Как отследить сторону прокрутки колесика мыши (вверх, вниз)?
Ответить с цитированием
  #8 (permalink)  
Старый 06.08.2013, 06:54
Аспирант
Отправить личное сообщение для MadChild Посмотреть профиль Найти все сообщения от MadChild
 
Регистрация: 22.10.2012
Сообщений: 34

рони, это именно то)) спасибо))
Но использовал метод, который сам выше написал))

Правда вот возникала другая проблема:
При резком прокрутывании выдается сразу, допустим, десяток действий "прокурутить вниз", а как-нибудь их органичить можно?!
Ну то есть пока страница крутится без остановки - это как одна прокрутка. не большой стоп - это вторая прокрутка))
Ответить с цитированием
  #9 (permalink)  
Старый 06.08.2013, 08:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

setTimeout в помощь

Или сравнивать event.timeStamp
Ответить с цитированием
  #10 (permalink)  
Старый 06.08.2013, 13:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от MadChild
При резком прокрутывании выдается сразу, допустим, десяток действий
при скроллинге событие повторяется много раз
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Scroll menu, подсветка активных пунктов меню при скролле makissm21 AJAX и COMET 13 29.04.2017 19:28
Не могу отловить результат события в глобальном обработчике Casufi jQuery 2 27.05.2013 17:59
Помогите отловить собыие клика на любом участке сайта кроме заданного блока Emil jQuery 2 10.11.2012 17:40
Как можно отловить id который добавил с помощью append() ? saturn Элементы интерфейса 4 17.01.2012 01:35
Как изменить положение scroll? PAMAC Общие вопросы Javascript 3 25.11.2010 18:22