Плагин mousewheel слишком тяжел для своей роли.Я извлек суть.Прекрасно работает во всех браузерах.
$('#bananas').bind('mousewheel DOMMouseScroll', function (e) {
var delta = 0, element = $(this), value, result, oe;
oe = e.originalEvent; // for jQuery >=1.7
value = element.slider('value');
if (oe.wheelDelta) {
delta = -oe.wheelDelta;
}
if (oe.detail) {
delta = oe.detail * 40;
}
value -= delta / 8;
if (value > 100) {
value = 100;
}
if (value < 0) {
value = 0;
}
result = element.slider('option', 'slide').call(element, e, { value: value });
if (result !== false) {
element.slider('value', value);
}
return false;
});
РЕДАКТИРОВАТЬ: изменено #slider
на #bananas
РЕДАКТИРОВАТЬ 2: добавлен запуск slide
событие
Поскольку вы используете толькоvalue
свойство, которое я передаю для объекта параметра только с этим свойством.Если вам понадобится что-то еще, не забудьте добавить его в код колесика мыши.
EDIT3: добавлена возможность отмены изменений, когда функция slide
возвращает false
(как в документации)
ОБНОВЛЕНИЕ: delta
показывает не только направление колеса, но и имеет более глубокое значение.Описывает количество пикселей для прокрутки.Значение по умолчанию для прокрутки составляет 3 строки, что составляет 120 пикселей, но оно может отличаться.
Если вы хотите получить только направление колеса, измените это:
value -= delta / 8;
на следующее:
value -= (delta > 0) ? 5 : (delta < 0) ? -5 : 0;
, хотя delta === 0
никогда не должно происходить.
ОБНОВЛЕНИЕ: Добавлена часть для более новых версий jQuery (e.originalEvent).