Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2013, 17:45
Аспирант
Отправить личное сообщение для daima Посмотреть профиль Найти все сообщения от daima
 
Регистрация: 01.08.2012
Сообщений: 59

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

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

Ужасный язык javascript. Нафига столько букв?
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2013, 21:10
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

daima,

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

Последний раз редактировалось Hoshinokoe, 07.02.2013 в 21:14.
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2013, 09:34
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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

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


Чтобы этот код заработал в IE7-8, нужно подключить через условные комментарии костыль: https://github.com/devote/spike
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2013, 09:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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

Поэтому:
var regionList = document.querySelector('#regionList');
for (var eventType in {'DOMMouseScroll':1, 'mousewheel':1}) {
    regionList.addEventListener(eventType, cancelScroll);
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хочу инвайт на хабр macdack Оффтопик 45 28.07.2013 23:18
Плавный Скроллинг дока: JS vs Jquery vs Jquery + Плагины SegaMega Events/DOM/Window 1 27.12.2012 15:02
Вопрос поддержки старых методов jQuery antonM jQuery 1 04.10.2012 00:08
Вертикальный скроллинг скрипта accordion на jquery vyrtime jQuery 9 22.06.2011 12:22
как реализовать на jQuery скроллинг фоток sensor jQuery 8 31.05.2010 18:51