Отловить scroll колесиком
Ребят, подскажите как отловить скролл колесиком, НО!!!
Надо точно знать в какую сторону идет скролл вверх или вниз и взаивисимости от этого выполнить опредленную функцию, а scroll не выполнять Спасибо)) |
тестил в хроме:
<!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> |
|
skrudjmakdak, идея клевая, но в FireFox'е так и не завелся (((
nerv_, к сожалению не то что надо((( |
Нужно ловить три события
wheel - новое, описано в HTML5 (поддерживается IE9+, FF последними) mousewheel - старое, поддерживается почти всеми браузерами, кроме FF DOMMouseScroll - поддерживается старыми версиями FF Впринципе, можно ограничиться только двумя последними, но в перспективе лучше использовать wheel. |
Нашел рабочий скрипт
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, то вниз Всем спасибо)) |
|
рони, это именно то)) спасибо))
Но использовал метод, который сам выше написал)) Правда вот возникала другая проблема: При резком прокрутывании выдается сразу, допустим, десяток действий "прокурутить вниз", а как-нибудь их органичить можно?! Ну то есть пока страница крутится без остановки - это как одна прокрутка. не большой стоп - это вторая прокрутка)) |
setTimeout в помощь
Или сравнивать event.timeStamp |
Цитата:
|
Часовой пояс GMT +3, время: 16:22. |