2009-07-30 7 views
32

J'ai un lien sur lequel, lorsqu'on clique, je voudrais déplacer la position de la souris vers la droite (ou n'importe où dans la fenêtre, d'ailleurs).jQuery Définir la position de la souris (pas la position du curseur)

dans le code il ressemblerait probablement similaire à ce qui suit:

$('a#expand').click(function(e){ 
    $(document) 
     .mouseXPos(e.pageX + 50) 
     .mouseYPos(e.pageY + 50); 
}); 

Enchaînement pourrait ne pas être nécessaire, bien sûr, mais une fonctionnalité similaire « jeu de position de la souris » est ce que je suis après.

J'ai vu des solutions pour déplacer la position du curseur à un certain endroit dans le texte, mais je n'ai pas glané beaucoup d'eux.

+1

Cela ressemble à quelque chose qui va vraiment irriter les utilisateurs! J'espère que vous avez une bonne raison de le faire, pas que ce soit possible. – ScottE

+0

Je devrais expliquer plus loin. J'utilise le super plugin hoverIntent de Brian pour jQuery, ainsi qu'un menu qui inclut un onglet lié qui développe le menu. J'anime le glissement, mais le hoverIntent raté le hover off si la souris reste immobile pendant que le menu s'anime. Cela semble étrange, mais ce plugin attrape tout le reste du mouseenter classique/laisse les ratés ratés que les développeurs rencontrent généralement. Il connaît ce problème et travaille dessus pour la prochaine version. Être capable de déplacer la souris d'un point de vue serait super. Une solution côté client ou côté serveur serait géniale. – Michael

+1

alors que ça sonne à première vue comme quelque chose qui irrite les utilisateurs, permettez-moi de décrire une situation où _not_ déplacer la souris irrite les utilisateurs et le déplacer pourrait effectivement leur faire plaisir ... imaginez que vous cliquez sur quelque chose sur une page web et les éléments la page se réorganise; si la souris n'a pas bougé, vous n'êtes plus sur l'élément sur lequel vous avez cliqué; la souris n'a pas bougé par rapport à la page mais elle _has_ s'est déplacée par rapport au * contenu *. "déplacer" la souris par rapport à la page pourrait être nécessaire afin de fournir l'expérience que la souris n'a pas déplacée. –

Répondre

53

Il n'y a aucun mécanisme pour déplacer la souris via JavaScript.

+0

Tout mécanisme pour ASP.Net, AJAX, jQuery, C#? Je sais que la position de la souris peut être lue via jQuery, peut-être qu'il y a un moyen de l'exposer via le DOM? – Michael

+5

@Michael: Non, la position de la souris est en lecture seule pour JavaScript. AJAX est juste une méthode de communication pour JavaScript s'exécutant sur le client pour parler à une application serveur via HTTP. ASP.NET/C# est côté serveur et sa portée est limitée au serveur sur lequel il s'exécute. La seule façon de contrôler la souris d'un client est avec une application côté client qui s'exécute dans l'espace utilisateur, ce qui signifie qu'ils doivent télécharger et installer quelque chose. – MyItchyChin

+1

Bien que ce soit une réponse assez tardive, merci CptSkippy. J'ai upvoted et marqué comme la réponse pour votre commentaire à ma question. – Michael

9

Je peux me tromper, mais je ne pense pas qu'il soit possible de déplacer le pointeur de la souris depuis le script côté client. Compte tenu de la possibilité d'abus, j'espère certainement que non.

+0

J'avais définitivement pensé à l'inquiétude à ce sujet. Devrais-je jamais rencontrer un tel pouvoir, je serai sûr de trouver une solution et de vous le faire savoir. Connaissez-vous un script côté serveur pour ce faire? Merci. – Michael

+0

@Michael: Le script côté serveur est encore moins susceptible de déplacer le pointeur de la souris du client. Il peut être possible de déplacer le pointeur de la souris via le contrôle ActiveX (Internet Explorer uniquement), le plugin personnalisé, le contrôle .NET ou éventuellement l'applet Java signé. –

4

Il n'y a aucun moyen d'effectuer la modification de la position de la souris via JavaScript ou tout script côté client. La seule raison pour cela est de ne pas donner à un script côté client un potentiel d'abus comme indiqué précédemment.

4

Vous pouvez masquer le curseur et en afficher un autre à un endroit différent.

Bon à avoir pour se déplacer dans un labyrinthe par exemple. Le curseur a l'air d'être arrêté mais vous le verrez à nouveau lorsque vous vous déplacez à l'extérieur de la fenêtre.

+0

puis-je savoir comment est-ce possible car j'ai besoin de l'implémenter? – heyanshukla

+1

@heyanshukla Pour masquer [un curseur] (http://www.w3schools.com/cssref/pr_class_cursor.asp), vous pouvez utiliser 'document.body.style.cursor = url ('empty.ico');' si vous avez un fichier d'icône vide. Ou vous pouvez définir 'document.body.style.cursor = 'none';' mais cela ne fonctionne que dans Firefox. Bien sûr, il ne peut pas personnaliser les coordonnées de la souris, seulement peut cacher le curseur. – Stano

+0

@Satno, merci pour les mises à jour. – heyanshukla

2

Comme d'autres utilisateurs l'ont déjà mentionné, il n'y a pas de mécanisme pour que Javascript le fasse. Cependant, vous pouvez désactiver la souris et implémenter un curseur pour faire ce dont vous avez besoin. Voici un lien qui explique comment. How to implement a custom cursor.

Questions connexes