Dlaczego w systemie Windows prędkość przewijania wzrasta, gdy przesuwasz kursor w poziomie?

4

Przekonałem się, że jeśli zaznaczam tekst, komórki w programie Excel itp., Klikając i przeciągając, a następnie przesuwając kursor do dolnej części ekranu, przewija się on automatycznie i ma stałą prędkość. Jeśli przesunę kursor nieco ponad krawędź ekranu, przewinie się on wolniej. Jeśli bardzo szybko poruszam kursorem od lewej do prawej i do tyłu, prędkość przewijania jest zauważalnie większa niż pozostawianie nieruchomego na dole ekranu. Spowalnia jednak ponownie, jeśli po krótkiej sesji jigglingu znów go zatrzymuję.

Z czystej ciekawości chciałbym wyjaśnić, co powoduje takie zachowanie - najlepiej na poziomie technicznym.

Moim najlepszym przypuszczeniem jest to, że wielkość prędkości przewijania to odległość od pierwszego kliknięcia do bieżącej pozycji kursora, a przeciwprostokątna trójkąta utworzonego przez przesunięcie kursora w poziomie ma większą wielkość (a zatem daje większą prędkość przewijania). Jednak w normalnych okolicznościach prędkość nie jest różna, jeśli moje pierwsze kliknięcie było w kierunku góry grupy tekstu lub komórek, lub w dół - a moja hipoteza nie uwzględnia spowolnienia po wstrząsie.

Richard Pianka
źródło
1
Dobre pytanie i na szczęście dzięki temu zjawisku się zdarza lub nadal utknąłem na manipulowaniu dużymi arkuszami kalkulacyjnymi.
panhandel

Odpowiedzi:

2

Domyślnie (ponieważ takie zachowanie jest specyficzne dla aplikacji), gdy wskaźnik jest nieruchomy, do wyzwalania zdarzeń przewijania używany jest zegar, natomiast każde zdarzenie ruchu wskaźnika uruchamia zdarzenie przewijania, gdy wskaźnik znajduje się w odpowiednim obszarze działania. Ponieważ szybkość raportowania ruchu wskaźnika jest znacznie wyższa niż częstotliwość zdarzeń czasomierza, zdarzenia przewijania są generowane częściej na podstawie ruchu niż oczekiwania.

Ignacio Vazquez-Abrams
źródło