Как убрать скролл браузера при открытии меню, а после его закрытия обратно его включить? Нашел вот такое решение, но не знаю как выключить это после того, как закроется меню:
document.onmousewheel = document.onwheel = function () {
return false;
};
document.addEventListener("MozMousePixelScroll", function () {
return false
}, false);
document.onkeydown = function (e) {
if (e.keyCode >= 33 && e.keyCode <= 40) return false;
};
return false;
Вот ссылка на кодпен
P.S. overflow: hidden; не подходит, т.к. после отмены этого свойства будет скроллиться в самый верх страницы.
Вынесите определение нужно скроллить или нет во внешнюю переменную и в ваших ф-ях возвращайте ее:
window.can_scroll = true;
document.onmousewheel = document.onwheel = function () {
return window.can_scroll;
};
document.addEventListener("MozMousePixelScroll", function () {
return window.can_scroll
}, false);
document.onkeydown = function (e) {
if (e.keyCode >= 33 && e.keyCode <= 40) return window.can_scroll;
};
Или удаляйте листенеры:
// выключить скролл
document.onmousewheel = document.onwheel = function () {
return false;
};
function scrollOrNot() {
return false;
}
document.addEventListener("MozMousePixelScroll", scrollOrNot, false);
document.onkeydown = function (e) {
if (e.keyCode >= 33 && e.keyCode <= 40) return window.can_scroll;
};
// включить скролл
document.onmousewheel = document.onwheel = function () {
return true;
};
document.onkeydown = function (e) {
return true;
};
document.removeEventListener("MozMousePixelScroll", scrollOrNot, false);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне нужно чтобы при наведении на элемент в одном блоке, добавлялся класс элементу из другого блока и удалялся если курсор "уходит с элемента"
Всем приветНужно сделать sleep на 2 секунды в PhantomJs, после вернуть результат, пробовал через setTimeOut, но не возвращает результат