Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jquery и скроллинг (https://javascript.ru/forum/misc/35327-jquery-i-skrolling.html)

daima 07.02.2013 17:45

jquery и скроллинг
 
// Инициализация обработчика колеса мыши, повесим его только на слой regionList 
  if (document.getElementById("regionList").addEventListener)
  {
      document.getElementById("regionList").addEventListener('DOMMouseScroll', noscrl, false);
  }
  // Для всех остальных браузеров подойдет вот такая инициализация:
  document.getElementById("regionList").onmousewheel = noscrl;

А теперь тоже самое но на jquery, плиз.

Ужасный язык javascript. Нафига столько букв?

Hoshinokoe 07.02.2013 21:10

daima,

То же самое на jquery (3 варианта):
$('#regionList').scroll(noscrl);
$('#regionList').bind('scroll', noscrl);
$('#regionList').on('scroll', noscrl);

danik.js 08.02.2013 09:34

Цитата:

Сообщение от daima
Ужасный язык javascript. Нафига столько букв?

А у вас ужасная система именования.
noscrl = cancelScroll

Ужасен не язык, а его поддержка. Верней, ужасны люди, из-за которых не происходит своевременное обновление браузеров.
Эталонный код без всяких оберток и тд:
var regionList = document.querySelector('#regionList');
regionList.addEventListener('wheel', cancelScroll);


Чтобы этот код заработал в IE7-8, нужно подключить через условные комментарии костыль: https://github.com/devote/spike

danik.js 08.02.2013 09:43

Но это не все. С событием колеса мыши есть проблемы.
В старых firefox это DOMMouseScroll, в остальных браузерах это mousewheel, а в новых FireFox, IE9+ это wheel (HTML5, но его не обязательно использовать)

Поэтому:
var regionList = document.querySelector('#regionList');
for (var eventType in {'DOMMouseScroll':1, 'mousewheel':1}) {
    regionList.addEventListener(eventType, cancelScroll);
}


Часовой пояс GMT +3, время: 08:04.