Je construis un site web avec une ligne de temps javascript défilant, en utilisant le code de this tutorial. Il y a une démo à suivre avec le tutoriel here. Mon problème est le suivant: si l'utilisateur clique sur le plan de montage pour le faire glisser, et qu'il lui arrive de cliquer sur un lien, le navigateur l'interprète en cliquant sur le lien lorsque le bouton de la souris est relâché. Par conséquent, il est très facile de naviguer loin de la ligne de temps par accident.Comment faire pour capturer le clic de la souris avec javascript lorsque la souris s'est déplacée entre mousedown et mouseup
Le comportement que je voudrais est la suivante: en cliquant sur un lien ne déclenche la navigation si la souris n'a pas été déplacé entre mousedown et mouseup. Si la souris a été déplacée alors que le bouton est maintenu enfoncé, le lien n'est pas suivi, car l'utilisateur essaie de déplacer le scénario plutôt que de cliquer sur un lien.
Est-ce possible? J'ai le sentiment que nous avons besoin d'une variable booléenne is_mouse_moved qui est définie sur false sur mousedown et définie sur true sur mousemove. Ensuite, sur mouseup, nous vérifions s'il faut "passer" l'événement mouseup au navigateur. Comme vous pouvez le dire, je ne suis pas trop familier avec js!
Toute aide appréciée.
Ou peut-être combiner cela avec l'idée de RMorrisey et permettre seulement le clic si la distance de traînée est inférieure à un petit nombre de pixels, pour permettre le dérèglement de la souris. – mojones