12
votes

Comment puis-je détecter la distance que la souris de l'utilisateur a déplacé?

J'essaie de détecter la distance déplacée par la souris, en pixels. J'utilise actuellement:

$(document).mousemove(function(event) {
    var startingTop = 10,
        startingLeft = 22,
        math = Math.abs(((startingTop - event.clientY) + (startingLeft - event.clientX)) + 14) + 'px';
    $('span').text('From your starting point(22x10) you moved:   ' + math);
});


5 commentaires

Avez-vous besoin d'accumuler la distance ou non?


Je ne sais pas ce que vous essayez vraiment de faire, mais la distance entre deux points est calculée comme suit: math.sqrt ((deltax * deltax) + (deltay * deltay))


Pourriez-vous mettre cela comme une réponse avec d'autres détails. Je ne vois pas comment cela fonctionnerait.


Non, je ne peux pas la mettre dans une réponse parce que je suis incapable de comprendre de votre question ce que vous essayez de faire. Précisez s'il vous plaît.


Je développe en fait un plugin de glisser-déposer. Et je veux créer une fonctionnalité appelée distance . Comme draggable l'a. Où vous devez tirer votre souris une certaine quantité de px avant de traîner. Je ne suis pas complètement sûr comment faire cela. Donc, j'ai d'abord besoin d'obtenir le PX que la souris a quitté la souris du DébutTop et Débutez position.


3 Réponses :


13
votes

Voici une version de la distance de mètre que la souris se déplace:

p>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span></span>


2 commentaires

Ce n'est pas vraiment ce que je veux. Voici une meilleure description de ce que je veux: je développe réellement un plugin glisser-déposer. Et je veux créer une fonctionnalité appelée distance. Comme draggable l'a. Où vous devez tirer votre souris une certaine quantité de px avant de traîner. Je ne suis pas complètement sûr comment faire cela. Donc, je dois d'abord obtenir le PX que la souris a quitté la position de départ et de départ.


Cela a tendance à poser la question de savoir pourquoi vous réinventez la roue plutôt que de modding JQuery UI de l'interface utilisateur pour atteindre votre objectif.



7
votes

est venu avec le quelque chose de SIMILIAIAR à Sergio, mais cela calculera la désactivation du point que la souris a été maintenue en panne et que JCFNED ait dit la distance entre deux points,

D = ((x1-x2) ^ 2 + (y1-y2) ^ 2) ^ (1/2) xxx


3 commentaires

C'est juste le montant que la souris a bouger. J'ai besoin de détecter combien de px loin la souris est du point de départ


Vérifiez la modification que j'ai faite, il faut le mouvement total car la souris a été maintenue maintenant.


@Motes: vous devez le mettre en jsfiddle. Il est beaucoup plus facile de tester là-bas :-)



8
votes

Vous avez eu votre mathématique. Voici la version améliorée: http://jsfiddle.net/stulentev/em4xu/26/ xxx


3 commentaires

Mais cela ne fonctionne pas lors de l'utilisation de différents nombres. Comme ici: Jsfiddle.net/em4xu/30


@ Shawn31313: Que voulez-vous dire "ça ne marche pas"? Semble travailler pour moi.


Tant pis. C'était juste quand je l'ai mis dans mon plugin. J'ai besoin de changer quelque chose dans les mathématiques. Merci encore pour la réponse.