JeuWeb - Crée ton jeu par navigateur
Drag & drop par les scrolls plutot que de bouger le DOM? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Drag & drop par les scrolls plutot que de bouger le DOM? (/showthread.php?tid=7454)

Pages : 1 2 3


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - Argorate - 09-09-2015

Je ne vous ai pas attendu pour le faire sur mon "vrai" code Wink


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - niahoo - 10-09-2015

(09-09-2015, 08:19 PM)Xenos a écrit : de sorte que la souris reste au-dessus du pixel de départ en gros

Oui ! J'y avais pas pensé mais c'est exactement ça qui donne une impression de contrôle.


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - Ter Rowan - 10-09-2015

(10-09-2015, 01:25 AM)niahoo a écrit :
(09-09-2015, 08:19 PM)Xenos a écrit : de sorte que la souris reste au-dessus du pixel de départ en gros

Oui ! J'y avais pas pensé mais c'est exactement ça qui donne une impression de contrôle.

en fait le mieux que j'ai vu (que j'ai essayé de faire sur ma partie svg mais qui n'est pas terrible terrible et ne correspond pas à mon objectif ci dessous) donne une petite différence


vu qu'il y a un léger délai entre le mouvement de la souris (du curseur) et le traitement javascript qui déplace la zone, on peut se retrouver sur des mouvements brusques avec des écarts de plusieurs pixels. Ce n'est pas grave voire intéressant : en fin de mouvement, le javascript devrait rattraper ce retard

comme je suis pas très clair... (conf call en anglais en //) la séquence :

- l'utilisateur démarre le "drag" avec son mouvement de poignet
- le javascript démarre le mouvement d'image et est décallé
- fonction du code qu'on met, on peut rattraper ce retard (à chaque timeout) mais on aura toujours du retard.
- l'utilisateur arrête le "drag"
- le javascript rattrape son retard en continuant le mouvement d'image mais à une vitesse plus faible que la vitesse du mouvement et qui se réduit progressivement (ça donne une sensation d'atterrisage lent très intéressant. Lire les règles d'ergonomie de google sur le sujet si vous voulez aller plus loin, en anglais je crois, désolé Argo :p)


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - Xenos - 10-09-2015

Il n'y a pas de véritable délais de retard si tu utilises de l'event (drag/drop ou movemove). Si tu fais du timeout pour te placer sous la souris, oui. Sinon, pour éviter les écarts d'affichage, tu peux faire un event sur le dessin de la fenêtre (je ne sais plus le nom de l'event, mais il existe).

Si t'as un effet de fondu quelconque pour "rattraper ton retard", alors t'as probablement la possibilité de ne pas avoir ce retard: pour faire ce fondu, il te faut des frames de dessin, donc au lieu de "dessiner" du fondu sur ces frames, tu "dessines" en te servant de la position réelle de la souris.


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - niahoo - 10-09-2015

Malheureusement comme tu peux le vois sur le jsfiddle les events drag donnent un méchant lag où la carte reste immobile genre 300 ms. Et le mouvement de la souris étant saccadé, celui de la carte aussi.

Après une implémentation comme google maps avec une interpolation distance/temps est ce qui rend le plus fluide oui, mais c'est plus galère à implémenter pour un backend admin.


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - Xenos - 10-09-2015

Je n'ai pas de saccade une fois le drag commencé (peut-être est-ce du à l'absence d'image de fond ici? j'ai cru en voir une chez moi, mais de mémoire, je n'avais pas de lag non plus).
Pour la latence de départ, elle me semble cohérente puisqu'elle vient du navigateur et de son ergonomie: cela évite que la carte ne se déplace quand on veut juste cliquer sur un lien. Sans cette "latence", on serait obligé de souder sa souris à la table avant de cliquer sur un lien (car elle peut faire de micro-mouvements quand on clique).


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - niahoo - 10-09-2015

Oui mais parfois la latence n'est pas là. Je comprends ce que tu veux dire mais cela ne semble pas être un comportement voulu. Quand tu as un lien, l'évènement n'est pas lancé sur la même target, donc dans ce cas précis tu peux mettre une latence volontaire. Mais c'est inutile sur le fond de carte.

Une fois le drag commencé, les saccades sont présentes si tu as plus de 70 ans, ou que tu fumes trop, ou que tu picoles trop, ou que tu es préssé, etc. =D Avec ta configuration ça devrait être clean.


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - Argorate - 11-09-2015

Je n'ai aucune latence sur FF, par contre chrome marche très mal, c'est pas de la latence, il faut mettre la souris proche du bord du div ET pas hors du div pour que ça déplace... bref vu que c que pour mon admin, ça me va^^


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - Max72 - 11-09-2015

Pas de latence non plus chez moi (avec FF et un PC bien trop puissant pour la simple utilisation que j'en fait ^^ )


RE: Drag & drop par les scrolls plutot que de bouger le DOM? - @lucard - 14-09-2015

Xenos a écrit :Je n'ai pas de saccade une fois le drag commencé (peut-être est-ce du à l'absence d'image de fond ici? j'ai cru en voir une chez moi, mais de mémoire, je n'avais pas de lag non plus).
Idem pas de saccade sous FF, et en changeant l'url de l'image pour avoir une image, plus grande également (ça par exemple), toujours aucune saccade...

De mémoire les images de DeviantArt ont le don d'être longues à charger.
Par rapport aux retours, Argorate, tu ferais mieux de changer de navigateur pour FF pour ta partie Admin. =)