jquery и скроллинг
// Инициализация обработчика колеса мыши, повесим его только на слой regionList
if (document.getElementById("regionList").addEventListener)
{
document.getElementById("regionList").addEventListener('DOMMouseScroll', noscrl, false);
}
// Для всех остальных браузеров подойдет вот такая инициализация:
document.getElementById("regionList").onmousewheel = noscrl;
А теперь тоже самое но на jquery, плиз. Ужасный язык javascript. Нафига столько букв? |
daima,
То же самое на jquery (3 варианта):
$('#regionList').scroll(noscrl);
$('#regionList').bind('scroll', noscrl);
$('#regionList').on('scroll', noscrl);
|
Цитата:
noscrl = cancelScroll Ужасен не язык, а его поддержка. Верней, ужасны люди, из-за которых не происходит своевременное обновление браузеров. Эталонный код без всяких оберток и тд:
var regionList = document.querySelector('#regionList');
regionList.addEventListener('wheel', cancelScroll);
Чтобы этот код заработал в IE7-8, нужно подключить через условные комментарии костыль: https://github.com/devote/spike |
Но это не все. С событием колеса мыши есть проблемы.
В старых 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, время: 04:18. |