2010-03-03 3 views
0

J'ai une barre de défilement qui doit suivre une chronologie. Il est constamment défilé avec .scrollLeft en utilisant setInterval.faire la différence entre un parchemin causé par .scrollLeft et un utilisateur essayant de faire défiler dans une page HTML

Je veux toujours que l'utilisateur soit capable de prendre le contrôle naturellement et il suffit de faire glisser la barre de défilement. Si je peux détecter que l'utilisateur a fait cela, je voudrais simplement éteindre la minuterie setInterval et laisser le contrôle à l'utilisateur jusqu'à ce qu'il retourne explicitement le défilement automatique.

Y a-t-il un moyen de différencier l'événement de défilement de l'utilisateur, du défilement créé par .scrollLeft?

Répondre

3

Vous pouvez définir un indicateur avant de modifier scrollLeft et l'effacer ensuite, puis vérifier l'indicateur dans l'événement scroll.
Étant donné que Javascript est exécuté sur le thread d'interface utilisateur, l'utilisateur ne peut pas faire défiler pendant que votre code est en cours d'exécution.

0

Une alternative est d'abandonner en utilisant une barre de défilement du tout et le faire en utilisant CSS et jQuery slider control. Cela vous donne également l'option de le faire ressembler plus à une ligne de temps. vous pouvez définir les éléments de scroller à tout ce que vous voulez CSS.

Il y en a quelques-uns, mais il n'est pas trop difficile de rouler soi-même en utilisant un jQuery draggable control et en contraignant un axe à l'intérieur d'un conteneur long et étroit DIV.

Questions connexes