Как удалить preventDefault();
Замораживаю scroll окна следующим скриптом:
var prevent = function(event) {
window.scrollTo(0, 0);
event ? event.preventDefault() : window.event.returnValue = false;
};
if(window.addEventListener) {
var array = ['DOMMouseScroll', 'mousewheel', 'scroll'],
i = array.length;
while(i--) {
window.addEventListener(array[i], prevent, false);
}
}
else window.onmousewheel = document.onmousewheel = window.onscroll = prevent;
Пытаюсь разморозить следующим:
if(window.addEventListener) {
var array = ['DOMMouseScroll', 'mousewheel', 'scroll'],
i = array.length;
while(i--) {
window.removeEventListener(array[i], prevent, false);
}
}
else window.onmousewheel = document.onmousewheel = window.onscroll = null;
Работае в IE без проблем, в Opere не хочет. Подскажите как решить данную проблему? |
Есить добрые люди на этом свете или нет?
Уже два дня колупаюсь, ничего не получается((((( |
если не получается заморозить скролл, пробуй по -другому. через CSS, к примеру
|
Дело в том, что замораживает он отлично, а вот разморозить его потом проблема.
Вот этот код Опера видит отлично, и замораживается и размораживается скролл:
document.onmousewheel = function(e){ e.preventDefault(); }
а этот размораживает: document.onmousewheel = null; Но проблема в том, что IE не понимает этот код(( P.S. "В javascripte же нет неришимых задач... ". Хочется в это верить)) |
function prevent (e) {
e ? e.preventDefault() : window.event.returnValue = false;
}
// Запрещаем прокрутку страницы колесиком мышки
if (document.onmousewheel === undefined) {
document.addEventListener('DOMMouseScroll', prevent, false);
} else {
document.onmousewheel = prevent;
}
// Снимаем запрет
if (document.onmousewheel === undefined) {
document.removeEventListener('DOMMouseScroll', prevent, false);
} else {
document.onmousewheel = null;
}
|
Цитата:
А для совсем старых версий браузеров можно еще добавить:
var delta = 0;
// IE/Opera
if (event.wheelDelta) {
delta = event.wheelDelta/120;
if (window.opera) delta = -delta;
}
// FF
else if (event.detail) {
delta = -event.detail/3;
}
// в IE9+ добавили обработчик wheel
// и в обработчике проверять delta на значение больше нуля
|
Сделал вообще вот так:
//Запрещаю прокрутку
var prevent = function(event){ event ? event.preventDefault() : window.event.returnValue = false;};
window.onmousewheel = document.onmousewheel = window.onscroll = prevent;
//Снимаю запрет
window.onmousewheel = document.onmousewheel = window.onscroll = null;
Работает и в Опере и в IE. В других ещё не пробовал. |
Cледующий пост будет:
Ааа! Как удалить preventDefault()? Это не работает в Firefox. |
Цитата:
|
| Часовой пояс GMT +3, время: 21:58. |