2011-10-14 9 views
7

Pracuję nad napisaniem niestandardowego paska przewijania i łapię zdarzenie kółka myszy. Używam tego, aby dopasować listę przewijania elementu, który chcę przewijać.Ile pikseli przewija się na stronie przy użyciu zdarzenia "kółka myszy"?

Czy istnieje standardowa liczba pikseli przewijanych w dół, czy też różni się ona w zależności od systemu?

Jestem pokazując 114px w najnowszej kompilacji Firefoksa:

enter image description here

+0

Jest http://mootools.net/forge/p/scrollspy i http://twitter.github.com/bootstrap/javascript. html # scrollspy – CamelCamelCamel

Odpowiedz

9

Wielu kierowców myszy pozwala ustawić odległość przewijać kółkiem myszy, więc nie jest standardową odległość. Chciałbym wypróbować twój kod przez chwilę i wybrać dystans, który powstrzymuje Cię od przewijania przez cały dzień, ale nie przeskakuje milę przy każdym przewijaniu. Będziesz musiał "wyczuć" to. Zaproś przyjaciół do wyrażania opinii, pomaga to kilku osobom dotknąć tego typu rzeczy.

+0

Nie sądzę, że sterowniki myszy same w sobie są odpowiedzialne za "odległość przewiniętą przez kółko myszy". Każde zdarzenie kółka myszy zgłasza pewien kąt obrotu koła. Tłumaczenie 'WM_MOUSEWHEEL' na' WM_VSCROLL' jest funkcją podsystemu GUI na górze sterownika. –

+0

Myślę, że @Kirk próbuje określić, jak daleko można przewijać w pikselach, a nie jak daleko obracało się koło. –

1

Będziesz musiał zapisać bieżącą pozycję przewijania przed przewinięciem, a gdy wykryjesz przewijkę, myślisz o przebytej odległości.

2

Dla Firefox, masz zdarzenie MozMousePixelScroll, który raportuje liczbę pikseli, które powinny być przewijane e.detail.

window.addEventListener('MozMousePixelScroll', function(e) { 
    console.log(e.detail); 
}); 

Dla wielu innych przeglądarek, trzeba zdarzenie mousewheel że zgłosi e.wheelDeltaY, ale nie są one w pikselach i trzeba będzie odgadnąć ilość być przewijane.

zobaczyć także jak sproutcore obsługuje przewijanie w ramach własnej (oni pisząc swój własny pogląd przewijania zbyt): http://blog.sproutcore.com/scrolling-in-sproutcore/

0

Zazwyczaj każde koło mysz „tick” odpowiada pewnym konfigurowalnego (przez użytkownika) liczby pikseli.

W systemie Windows na przykład odległość przewinięta przez każde kliknięcie kółkiem myszy powinna być funkcją parametru SystemParametersInfo(SPI_GETWHEELSCROLLLINES, ...).

Here można znaleźć więcej informacji na ten temat.

2

I zauważyli, że w Google Chrome - to 100px za przewijania myszy

+0

53 na moim komputerze, również z Chrome (Ubuntu 12.04 LTS). – Ajedi32

+0

także tutaj 53px (Ubuntu 14.04). – joeytwiddle

Powiązane problemy