11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Est ce que quelqu'un aurait en poche un moyen simple de gérer le maintient du clic.
Je souhaiterais que lorsqu'un utilisateur passe sur un élément HTML avec la souris maintenue en clic, la couleur change par exemple.
J'ai essayé de jouer avec les mousedown, mouseup et un booléen mais je suis sur ordinateur portable et lorsque je déplace la souris sans cliquer avec le pad, le mouseup se lance.
(Alors que sur pad je souhaiterais que ça soit le double clic maintenu qui aie une influence sur mon booléen)

Merci d'avance.
Salut

La notion de "clic maintenu" n'existe pas en JS.

Si une action doit produire ses effets lorsque l'utilisateur survole un élément du DOM, on doit faire appel aux événements "mouseenter" et "mouseleave".

On doit pouvoir (avec des booléens) compliquer les choses, exemple si l'utilisateur est entré dans (mouseenter) et si l'utilisateur a cliqué sur un élément du DOM, alors produire une action. Si cette action est active (booléen), alors la terminer lorsque l'utilisateur quitte (mouseleave) l'élément du DOM.
Modérateur
Salut,

danielhagnoul a écrit :
La notion de "clic maintenu" n'existe pas en JS.

Bah si du coup, onmousedown et onmouseup font bien le taff...

@Johnsonn il faudrait détecter le touch et stopper l'action. J'ai vu cet article :

a écrit :

For a single click the order of events is:

touchstart
touchmove
touchend
mouseover
mousemove
mousedown
mouseup
click


Et du coup

a écrit :
Use preventDefault() inside touch event handlers, so the default mouse-emulation handling doesn’t occur.


Donc si on suis la théorie, dans ton evetn handler si tu met un preventDefault() dans le touch event il ne déclenchera pas le mousedown du click souris et tu pourras lancer un autre comportement.
Dans le cas inverse le mousedown marchera comme par défaut avec la souris.

source : https://www.html5rocks.com/en/mobile/touchandmouse/

Par contre je sais absolument pas ce que ça vaut.
A tester Smiley lol