Как удалить 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, время: 07:55. |