[JS] Blokada przewijania strony


(look997) #1

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.


(Spam) #2

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


(look997) #3

Jak tego użyć do przewijania strony?


(Spam) #4

Raczej do anulowania domyślnej akcji :slight_smile:


(look997) #5

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);