различать прокрутку, вызванную .scrollLeft, и пользователя, пытающегося прокрутить страницу HTML - PullRequest
0 голосов
/ 03 марта 2010

У меня есть полоса прокрутки, которая должна следовать некоторой временной шкале. Он постоянно прокручивается с помощью .scrollLeft с использованием setInterval.

Я все еще хочу, чтобы пользователь мог естественным образом взять под свой контроль и просто перетащить полосу прокрутки в сторону. Если бы я мог обнаружить, что пользователь сделал это, я просто отключил бы таймер setInterval и оставил бы управление пользователю, пока он явно не включит автопрокрутку обратно.

Есть ли способ отличить событие пользовательской прокрутки от прокрутки, созданной .scrollLeft?

Ответы [ 2 ]

3 голосов
/ 03 марта 2010

Вы можете установить флаг перед изменением scrollLeft и затем сбросить его, а затем проверить флаг в событии scroll.
Поскольку Javascript запускается в потоке пользовательского интерфейса, пользователь не может прокручивать его во время выполнения кода.

0 голосов
/ 03 марта 2010

Один из вариантов - вообще отказаться от использования полосы прокрутки и сделать это с помощью CSS и ползунка jQuery .Это также дает вам возможность сделать его более похожим на временную шкалу.Вы можете установить элементы скроллера на любой CSS, какой захотите.

Есть некоторые из них, но это не так уж сложно развернуть, используя перетаскиваемый элемент управления jQuery и ограничив его.ось внутри длинного, узкого контейнера DIV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...