Comments 40
Ням :)
Как раз нужен скрипт для обработки скрола. Спасибо, полезная статья.
if (false == !!event) ...
... event.detail/-3 ...
Фак май мозг.
Кто еще в избранное ради рецепта добавил? (:
На протяжении прочтения всей статьи меня преследовало жуткое дежа-вю, вплоть до «магических констант» :)
Дело в том что в своем проекте также некоторое время назад возникла необходимость отлавливать событие колеса для кастомного скролла дивов. Гуглил по этому поводу. Нагуглил тогда вот эту статью:
markup-javascript.com/2009/05/24/krossbrauzernyj-mousewheel-obrabotka-sobytiya-skrolinga/
Судя по всему, автор нагуглил ее же, но неизвестно почему ссылку не привел.
Дело в том что в своем проекте также некоторое время назад возникла необходимость отлавливать событие колеса для кастомного скролла дивов. Гуглил по этому поводу. Нагуглил тогда вот эту статью:
markup-javascript.com/2009/05/24/krossbrauzernyj-mousewheel-obrabotka-sobytiya-skrolinga/
Судя по всему, автор нагуглил ее же, но неизвестно почему ссылку не привел.
Если есть инвайты — могу выслать почту этого товарища. Хорошего JS-разработчика, а в данный момент и Drupal'иста
У меня в закладках лежали обработка колесика мыши и скроллер на javascript, может пригодится кому.
Гм, вот вы, автор, поставили меня перед моральной дилеммой. За первую часть статьи, которая, безусловно, очень полезная и уникальная даже, вам надо поставить + и в карму и самой статье. За вторую же — минус, потому что это, извините, все же ИТ ресурс, а не сайт рецептов и мне, в меру сил и возможностей, хочется как то его (ресурс) таким и оставить. И вот что же делать :)
нельзя такое читать в рабочее время :)
я про суп
я про суп
Суп — круто, надо бы сварить. А фигня эта со скроллом есть в любом уважающем себя фреймворке. Зачем лисапед?
Только что проверил в файерфоксе. Магическое число 3 — не такое уж и магическое. В виндоус 7 это системная настройка количества прокручиваемых строк на минимальный поворот колёсика мыши.
Верно, и при другом числе в настройках получается странность или ошибка. Например, прибавление 0.33 вместо 1. Лучше бы автор основной рецепт доводил до конца — прибавление всегда по 1, тем более, что другие до него это уже делали. Ещё в Опере 9 знак вращения — противоположный был до какой-то версии.
Спасибо за статью. Как раз в проекте собираемся делать прокрутку списка маусвилом — очень вовремя :)
Хабр не только торт, но иногда еще и суп.
На самом деле, прежде чем использовать в своих целях событие прокрутки мыши, надо подумать, можно ли это делать или нет. Можно это делать только в одном случае — если страница (приложение) целиком помещается на экране и по прямому назначению колесо мыши не используется. Иначе все это будет только раздражать пользователя, мешать прокрутке, и т.д.
Делать искуственные скроллбары — в общем, без важной и весомой причины (дурь в голове дизайнера — это не важная причина) плохо.
Стоит также намекнуть, что в данном месте страницы можно использовать колесо мыши сменой внешнего вида курсора.
Делать искуственные скроллбары — в общем, без важной и весомой причины (дурь в голове дизайнера — это не важная причина) плохо.
Стоит также намекнуть, что в данном месте страницы можно использовать колесо мыши сменой внешнего вида курсора.
А мне больше суп с галушками и грибами нравится. Ну и, конечно же, борщ! Но только с фасолью.
if (window.addEventListener) window.addEventListener("DOMMouseScroll", mouse_wheel, false);
window.onmousewheel = document.onmousewheel = mouse_wheel;
Первая строчка поймает событие в Firefox и веб-китовских браузерах (Chrome, Safari), вторая нужна для ловли в Опере и IE.
Опера и новые ие понимают addEventListener, но не понимают DOMMouseScroll. Для них сработает 2 строчка. Для остальных обе. Функция будет вызвана 2 раза. или даже 3 в самом плохом случае(отдельно Level 2 для window и потом level 0 для window и document).
if (false == !!event) event = window.event;
var direction = ((event.wheelDelta)? event.wheelDelta/120: event.detail/-3) || false;
Плохая идея жёстко прописывать 120 в коде, т.к. пользователь может поменять в системе параметры колёсика мыши и оно будет скроллить на другое значение. Лучше ориентироваться только на знак.
Поддержу HeadFore, забиваться, что у вас будет всегда 3 иди 120 — это в корне неправильно. Чтобы убедиться в этом — возьмите MagicMouse или тачпад — и поскрольте им. Значения, принимаемые event.detail будут самыми разнообразными.
При инертном скроллинге и переходе на другой объект надо бы отключать скроллинг.
А, во-вторых, я не знаю как у вас, а у нас в Москве морозы ударили. -10
У нас в Сибири по прежнему тепло. -17С
У нас в Сибири по прежнему тепло. -17С
Кто решал вопрос со скролом в мобильных браузерах? чтобы при протаскивании по области работало как событие скрол по области?
Sign up to leave a comment.
Расстановка точек над onmousewheel и немного о луковом супе