Запрет скроллинга страницы
И снова здрасте!:)
Подскажите как запретить скролл? Код:
.scroll{ Подскажите хоть в каком направлении мыслю мыслить. |
выполнять preventDefault для событий DOMMouseScroll и mousewheel
|
Хорошая идея спасибо.
Было бы не плохо примерчик какой-никакой)) |
Ну помогите ж вы необразованному человеку.
Как это выглядеть должно? window.onmousewheel.preventDefault(); window.DOMMouseScroll.preventDefault(); Написал вот-так, и естественно нифига не работает. Блин, никак не могу освоить этот жабаскрипт(((( |
document.onmousewheel = function (e) { e.preventDefault(); } |
Спасибо, помогло :thanks:
Что бы я без вас делал? ))) |
Eсли очень грубо, то смысл такой:
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; |
monolithed твой код постоянно скроллит страницу вверх, это не годится. Задача только запретить скроллинг. Код Magneto лучше справляется с этой задачей, только вопрос все браузеры будут адекватно реагировать на этот код?)
И ещё, всё это здорово конечно, но как теперь всё вернуть на место? :) |
Люди, ауу...
Вопрос по теме! Как отменить действие вот этого скрипта: document.onmousewheel = function (e) { e.preventDefault(); } |
удалить обработчик
|
dmitriymar, логично)) А как это выглядит в жабаскрипте?
|
monolithed установил так :
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; удалить можно так // функция 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; PS на основе кода monolithed Цитата:
|
melky, этот скрипт замораживает скролл только когда он находится в верхнем положении, если он прокручен вниз, страницу можно скроллить вверх.. :(
|
Разобрался, внёс небольшую поправочку и скролл начал замерзать. Вот код:
var prevent = function(event){ var h = document.documentElement.scrollTop; window.scrollTo(0, h); 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; Но основной вопрос остался без ответа. Скроллинг не начинает двигатся...(((( |
Блин, ну помогите кто-нибудь.
Вот эта чатсть кода работает только в IE, а в Oper-е не работает: 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; Как восстановить функцию скроллинга??? . |
Часовой пояс GMT +3, время: 20:44. |