Запрет скроллинга страницы
И снова здрасте!:)
Подскажите как запретить скролл? Код:
.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, время: 14:22. |