2011-08-16 5 views
5

So. Robię stronę z przyciskami; kliknięcie przycisków płynnie przewija stronę (właściwie kontener) do kotwic położonych dalej po prawej stronie. Odbywa się to za pomocą container.scrollLeft.Javascript: czy istnieje sposób na wykrycie przewinięcia użytkownika, ale nie przewijanie go za pomocą kodu (np. ScrollLeft itp.)?

Teraz próbuję zrobić tak, że gdy użytkownik przewinie ręcznie (pasek przewijania, kółko myszy, klawisze strzałek itp.), Automatyczne płynne przewijanie natychmiast zatrzymuje się.

Próbowałem zrobić to z container.addEventListener('scroll',StopScroll,false);, ale to wystrzeliwuje dla każdego przewijania, nawet wykonane za pomocą kodu, nie tylko przez użytkownika. Czy istnieje sposób wykrywania tylko przewijania użytkownika? A może obejście?

Ponadto wolałbym nie używać Jquery, ale przerzucam się na niego, jeśli jest to jedyny sposób.

Odpowiedz

3

Mam wrażenie, że przewijanie DOM i przewijanie zdarzeń są zarządzane w ten sam sposób, a zatem nie do odróżnienia.

Możesz jednak podłączyć się do mousedown/keydown i zaktualizować zmienną, gdy przytrzymasz klawisz lub przycisk myszy, i wykonywać tylko scrollStop, jeśli ta zmienna jest ustawiona?

Powiązane problemy