Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрет скроллинга страницы (https://javascript.ru/forum/misc/21561-zapret-skrollinga-stranicy.html)

nematod 15.09.2011 11:32

Запрет скроллинга страницы
 
И снова здрасте!:)

Подскажите как запретить скролл?
Код:

.scroll{
postiton: fixed;
overflow:hidden;
}

Такой код не подходит, потому что он скрывает скролл, и страница прыгает вправо. Нужно чтобы скролл оставался, но не прокручивался.

Подскажите хоть в каком направлении мыслю мыслить.

Octane 15.09.2011 11:44

выполнять preventDefault для событий DOMMouseScroll и mousewheel

nematod 15.09.2011 12:23

Хорошая идея спасибо.
Было бы не плохо примерчик какой-никакой))

nematod 15.09.2011 13:20

Ну помогите ж вы необразованному человеку.
Как это выглядеть должно?
window.onmousewheel.preventDefault();
window.DOMMouseScroll.preventDefault();

Написал вот-так, и естественно нифига не работает.
Блин, никак не могу освоить этот жабаскрипт((((

Magneto 15.09.2011 13:23

document.onmousewheel = function (e) {
  e.preventDefault();
}

nematod 15.09.2011 13:30

Спасибо, помогло :thanks:
Что бы я без вас делал? )))

monolithed 15.09.2011 13:55

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;

nematod 15.09.2011 20:47

monolithed твой код постоянно скроллит страницу вверх, это не годится. Задача только запретить скроллинг. Код Magneto лучше справляется с этой задачей, только вопрос все браузеры будут адекватно реагировать на этот код?)


И ещё, всё это здорово конечно, но как теперь всё вернуть на место? :)

nematod 16.09.2011 15:56

Люди, ауу...
Вопрос по теме! Как отменить действие вот этого скрипта:
document.onmousewheel = function (e) { 
  e.preventDefault(); 
}

dmitriymar 16.09.2011 17:08

удалить обработчик


Часовой пояс GMT +3, время: 06:16.