4 ответов:
Я настоятельно рекомендую вам использовать этот плагин jQuery: PLUGIN
Без плагина попробуйте следующий пример: пример
HTML:
<div id='foo' style='height:300px; width:300px; background-color:red'></div>Javascript:
$('#foo').bind('mousewheel', function(e) { if(e.originalEvent.wheelDelta / 120 > 0) { alert('up'); } else { alert('down'); } });На div нет полосы прокрутки, но событие wheel обнаружено.
Используйте этот код
$('#foo').bind('mousewheel DOMMouseScroll', function (event) { if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) { //up } else { //down } });
И, если вы не хотите использовать какой-либо плагин вообще (IE8, Chrome, Firefox, Safari, Opera...), просто сделайте это:
if (document.addEventListener) { document.addEventListener("mousewheel", MouseWheelHandler(), false); document.addEventListener("DOMMouseScroll", MouseWheelHandler(), false); } else { sq.attachEvent("onmousewheel", MouseWheelHandler()); } function MouseWheelHandler() { return function (e) { // cross-browser wheel delta var e = window.event || e; var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); //scrolling down? if (delta < 0) { alert("Down"); } //scrolling up? else { alert("Up"); } return false; } }Живой пример: http://jsfiddle.net/CvCc6/1/
Это просто обновление ответа @Aaron, используя новое событие "колесо", описанное здесь: https://developer.mozilla.org/en-US/docs/Web/Events/wheel
$('#foo').on('wheel', function(e){ if(e.originalEvent.deltaY < 0) { console.log('scrolling up !'); } else{ console.log('scrolling down !'); } });Вы также можете использовать
deltaXдля просмотра горизонтальной прокрутки илиdeltaZ, Если у вас есть какая-то сумасшедшая 3D-вещь.
Comments