[JS] Blokada przewijania strony

Chcę, aby na czas przebywania kursora nad elementem o ID #ajdi zablokowane było przewijanie strony, ale bez zablokowania zdarzeń “DOMMouseScroll” i onmousewheel. Chodzi o to, żeby zoom-ować mapkę bez przewijania strony. Jak to zrobić?

Najprościej to:

Najeżdżam na div-a, powiedzmy id #ajdi,

kręcę kółkiem myszy i mam do tego przypisaną funkcję powiększania obrazka (wersja do Fx):

mapa.getElementsByTagName("img")[0].addEventListener('DOMMouseScroll',azoom, true);

i teraz chcę, aby kręcenie kółkiem z kursorem umiejscowionym nad tym div-em nie powodowało przewijania strony.

return false / event.preventDefault() / event.returnValue = false

Jak tego użyć do przewijania strony?

Raczej do anulowania domyślnej akcji :slight_smile:

Ale jak się odnieść do przewijania strony?

Dodane 08.07.2010 (Cz) 22:47

Najprościej to:

Najeżdżam na div-a, powiedzmy id #ajdi,

kręcę kółkiem myszy i mam do tego przypisaną funkcję powiększania obrazka (wersja do Fx):

mapa.getElementsByTagName("img")[0].addEventListener('DOMMouseScroll',azoom, true);

i teraz chcę, aby kręcenie kółkiem z kursorem umiejscowionym nad tym div-em nie powodowało przewijania strony.

Dodane 29.12.2010 (Śr) 20:13

W google chrome (i możliwe że operze/ie) np tak:

window.addEventListener(‘mousewheel’, function (event)

{ event.preventDefault(); }, false);

W Fxie np. tak:

window.addEventListener(‘DOMMouseScroll’, function (event)

{ event.preventDefault(); }, false);

Tutaj więcej: http://adomas.org/javascript-mouse-wheel/

Jeśli ktoś używa rozszerzenia zmieniającego działanie przewijania strony, warto dodać:

event.stopPropagation();

Czyli:

W google chrome (i możliwe że operze/ie) np tak:

window.addEventListener(‘mousewheel’, function (event)

{ event.preventDefault(); event.stopPropagation(); }, false);

W Fxie np. tak:

window.addEventListener(‘DOMMouseScroll’, function (event)

{ event.preventDefault(); event.stopPropagation(); }, false);