2010-06-11 16 views
2

Je suis le suivi des mouvements de la souris d'un utilisateur en utilisant javascript et de le stocker avec la résolution du navigateur. Ensuite, je peux vérifier le mouvement de la souris de l'utilisateur dans mon navigateur qui est de 1024 x 768 résolution. Mais si l'utilisateur utilise un navigateur en 800 x 600 alors les mouvements de la souris sont enregistrés par 800 x 600. Et quand je vois les mouvements de la souris en 1024 x 768 les mouvements de la souris sont faux. Alors, comment puis-je passer de 800 x 600 à 1024 x 768?suivre les mouvements de la souris sur 800 x 600 et afficher sur 1024 x 768

Répondre

7

Vous multipliez essentiellement x/y de l'utilisateur coordonne avec le rapport largeur/hauteur:

x *= 1024/800; 
y *= 768/600; 

Je vous suggère d'appliquer également une Math.round() sur les deux coordonnées après l'application du rapport. Ceci, bien sûr, suppose que tout dans la plus grande résolution est redimensionné par le même rapport pour l'utilisateur, sinon, il y aura des problèmes. Par exemple, si vous essayez de superposer le mouvement de la souris sur une page Web, cette page Web a une barre latérale de largeur fixe de 200 pixels quelle que soit la résolution de l'utilisateur, alors bien sûr lorsque vous multipliez les coordonnées x/y par le ratio , vous pouvez constater que le pointeur n'est même pas au-dessus de la barre latérale comme c'était pour l'utilisateur.

Edit2: Dans le cas d'une page Web, le plus sûr moyen serait d'enregistrer la largeur viewport/hauteur de l'utilisateur, puis intégrer la même page Web dans un récipient (comme un iframe) avec cette taille exacte pour rejouer les actions. De cette façon, vous évitez certains problèmes.

0

Que diriez-vous de redimensionner le navigateur pour qu'il corresponde aux dimensions de l'utilisateur?

Questions connexes