Проверьте, запущена ли прокрутка или нет - PullRequest
0 голосов
/ 15 ноября 2011

Я создаю веб-сайт, и на этом веб-сайте у меня есть событие на колесе мыши. Проблема в том, что когда вы прокручиваете свою мышь на Mac (с помощью волшебной мыши), событие прокрутки вызывается так много раз, что в один момент функция прокрутки полностью испугается и больше не будет плавной.

Кто-нибудь знает, как можно решить эту проблему? Я уже пытался проверить e.orginalEvent, но он всегда возвращает DOMMouseWheel. Также на ПК у вас нет этой проблемы, и с другой мышью, а не с волшебной мышью, она прекрасно работает.

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Похоже, вам нужен плагин debounce / throttle здесь http://benalman.com/projects/jquery-throttle-debounce-plugin/.

Позволяет настроить запуск событий только после определенного периода, например, 1 секунды. Таким образом, ваша страница не заполняется событиями колесика мыши, или если кто-то думает, что нажатие кнопки отправки формы МИЛЛИОН раз заставит ее отправить быстрее ...

1 голос
/ 15 ноября 2011

Попробуйте использовать что-то вроде underscore.js 's throttle.

Из документации:

Возвращает aограниченная версия функции, которая при многократном вызове будет фактически вызывать упакованную функцию не чаще одного раза за каждые миллисекунды ожидания.Полезно для ограничивающих скорость событий, которые происходят быстрее, чем вы можете идти в ногу.

...