Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отслеживание события scroll с отменой (https://javascript.ru/forum/misc/53833-otslezhivanie-sobytiya-scroll-s-otmenojj.html)

Dorian_bs 20.02.2015 14:30

Отслеживание события scroll с отменой
 
Всем привет!
Очень хочется услышать Ваши мысли!

Дело в том, что необходимо получить событие "onscroll", но при этом не дать странице возможности совершить прокрутку.

$('#menu-window').scroll(function (e) {
console.log(e);
if($(this).scrollTop() < 200) {
$(this).scrollTop(200);
}
});

К сожалению, подобный вариант работает с прыжками в IE. Необходимо что, что не просто "вернет" на место, а что вообще отменит событие.

Заранее спасибо!

danik.js 20.02.2015 14:35

scroll нельзя отменить. Но можно отменить события, приводящие к скроллу. Но зачем такое странное поведение понадобилось?

Dorian_bs 20.02.2015 14:51

danik.js,
жаль...

И есть задача - запретить прокрутку, если scrollTop() < 200

Вот и ищу способы реализовать это без прыжков =(

arcmag 20.02.2015 15:00

можно вот так вот попробовать
var dY=0;
document.onmousewheel = function(e){
	dY+=e.deltaY;
	if(dY<0)dY=0;
	if(dY>200){ scroll(0,200); dY=200;}
	else scroll(0,dY);
}

Dorian_bs 20.02.2015 15:06

arcmag,
Вы ведь только событие мыши обрабатывайте. Но ведь можно же просто скроллом прокрутить страницу

danik.js 20.02.2015 15:31

Цитата:

Сообщение от Dorian_bs
Но ведь можно же просто скроллом прокрутить страницу

А тут уже ничего не поделаешь.
Возможно через requestAnimationFrame можно как-то избавиться от прыжков в IE, хотя я сомневаюсь.


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