Простое и рабочее решение:
угой вопрос Я сочинилэтот ответ, в том числеэтот пример кодаВ этом коде я использую колесо мыши, чтобы увеличивать или уменьшать масштаб HTML5 Canvas. Я нашел код, который нормализует разницу в скорости между Chrome и Firefox. Однако обработка масштабирования в Safari намного, намного быстрее, чем в любом из них..
Вот код, который у меня сейчас есть:
Какой код можно использовать, чтобы получить одинаковое значение «delta» для одинакового количества прокрутки колеса мыши в Chrome v10 / 11, Firefox v4, Safari v5, Opera v11 и IE9?
var handleScroll = function(e){
var delta = e.wheelDelta ? e.wheelDelta/40 : e.detail ? -e.detail/3 : 0;
if (delta) ...
return e.preventDefault() && false;
};
canvas.addEventListener('DOMMouseScroll',handleScroll,false); // For Firefox
canvas.addEventListener('mousewheel',handleScroll,false); // Everyone else
Этот вопрос
связано, но не имеет хорошего ответа.редактировать
: Дальнейшее расследование показывает, что одно событие прокрутки «вверх»:Кроме того, использование трекпада MacBook в OS X дает разные результаты даже при медленном движении:
| evt.wheelDelta | evt.detail ------------------+----------------+------------ Safari v5/Win7 | 120 | 0 Safari v5/OS X | 120 | 0 Safari v7/OS X | 12 | 0 Chrome v11/Win7 | 120 | 0 Chrome v37/Win7 | 120 | 0 Chrome v11/OS X | 3 (!) | 0 (possibly wrong) Chrome v37/OS X | 120 | 0 IE9/Win7 | 120 | undefined Opera v11/OS X | 40 | -1 Opera v24/OS X | 120 | 0 Opera v11/Win7 | 120 | -3 Firefox v4/Win7 | undefined | -3 Firefox v4/OS X | undefined | -1 Firefox v30/OS X | undefined | -1
На Safari и Chrome
значение 3 вместо 120 для колеса мыши.wheelDelta
На Firefox обычноdetail
иногда2
, но при прокрутке очень медленно1
НИКАКИХ МЕРОПРИЯТИЙ НЕ РАБОТАЕТИтак, вопрос:.Каков наилучший способ дифференцировать это поведение (в идеале, без какого-либо агента пользователя или прослушивания ОС)?
Извините, я удалил свой вопрос. Я пишу ответ прямо сейчас. Прежде чем я углублюсь, вы говорите о прокрутке в Safari в Mac OS X? Когда вы немного прокручиваете, это немного прокручивается, но если вы сохраняете постоянную скорость, она постепенно становится быстрее?