2016-05-28 1 views
0

Je dois configurer un état initial en utilisant la position du curseur lorsque l'utilisateur appuie sur un bouton, puis mettre à jour cet état lorsque le curseur se déplace. Curieusement, it seems difficult to get the cursor position outside an event.Est-ce que mousemove Event Fire When Assign

J'ai le code suivant:

// Here is where I would like to set an initial state but don't know how to get the coordinates 

    thing.addEventListener('mousemove', function (e) { 
     // Here is where I update based on new e.clientX and e.clientY 
    }); 

Ce qui précède semble effectivement travailler sans même l'état initial. Il semble que l'événement mousemove est déclenché dès que je l'ai assigné, même s'il n'a peut-être pas bougé depuis le clic.

Est-ce que quelqu'un sait si c'est un comportement intentionnel sur lequel je peux compter?

Répondre

0

D'après mes tests sur Windows 7, l'événement mousemove ne se déclenche pas automatiquement sur le bouton clic dans deux situations:

  1. Sur Firefox, comme mentionné dans ce post: What to do if "mousemove" and "click" events fire simultaneously?

  2. Lorsque le bouton a le focus et est pressé avec la barre d'espace (dans IE, Chrome et Firefox)

Comme vous le dites, obtenir le mo utiliser une position en dehors d'un gestionnaire d'événements, et surtout avant toute action de la souris, semble être une tâche impossible.