2009-07-30 20 views
32

Tengo un enlace que, cuando hace clic, me gustaría mover la posición del mouse hacia la derecha (o en cualquier lugar dentro de la ventana gráfica, para el caso).jQuery Establecer posición del mouse (no posición del cursor)

en el código sería probablemente un aspecto similar al siguiente:

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

encadenamiento podría no ser necesario, por supuesto, pero una funcionalidad similar 'fijar la posición del ratón' es lo que busco.

He visto soluciones para mover la posición del cursor a un lugar determinado en el texto, pero no obtuve mucho de ellas.

+1

¡Esto suena como algo que realmente irritará a los usuarios! Espero que tengas una buena razón para hacer esto, no es que sea posible. – ScottE

+0

Debo explicar más. Estoy usando el gran plugin hoverIntent de Brian para jQuery, junto con un menú que incluye una pestaña vinculada que expande el menú. Estoy animando el deslizamiento hacia afuera, pero el elemento estacionario falla al aletear si el mouse permanece quieto mientras el menú está animando. Suena extraño, pero este plugin capta todo el resto del mouseenter clásico/deja fallos de encendido que los desarrolladores suelen encontrar. Él sabe sobre este tema y está trabajando en ello para el próximo lanzamiento. Ser capaz de mover el mouse de alguna manera un pixel sería genial. O bien la solución del lado del cliente o del lado del servidor sería increíble. – Michael

+1

aunque esto suena a primera vista como algo que irritaría a los usuarios, permítanme describir una situación en la que _no mover el mouse irritaría a los usuarios y moverlo en realidad podría complacerlos ... imagine que hace clic en algo en una página web y los elementos en la página reorganizar; si el mouse no se movió, ya no está sobre el elemento en el que hizo clic; el mouse no se ha movido en relación con la página, pero se ha movido con relación al * contenido *. "mover" el mouse relativo a la página podría ser necesario para proporcionar la experiencia de que el mouse no se ha movido. –

Respuesta

53

No hay ningún mecanismo para mover el mouse mediante JavaScript.

+0

¿Algún mecanismo para ASP.Net, AJAX, jQuery, C#? Sé que la posición del mouse se puede leer a través de jQuery, tal vez haya una forma de exponerlo a través del DOM. – Michael

+5

@Michael: No, la posición del mouse es de solo lectura para JavaScript. AJAX es solo un método de comunicación para que JavaScript se ejecute en el cliente para hablar con un servidor Aplicación a través de HTTP. ASP.NET/C# es del lado del servidor y su alcance está limitado al servidor en el que se ejecuta. La única forma de controlar el mouse de un cliente es con una aplicación del lado del cliente que se está ejecutando en el espacio del usuario, lo que significa hacer que descargue e instale algo. – MyItchyChin

+1

Aunque esta es una respuesta bastante tardía, gracias CptSkippy. Subí y marqué como respuesta a tu pregunta sobre tu comentario. – Michael

9

Puedo estar equivocado, pero no creo que sea posible mover el puntero del mouse desde el script del lado del cliente. Dado el potencial de abuso, ciertamente espero que no lo sea.

+0

Definitivamente había pensado sobre la preocupación acerca de esto. Si alguna vez encuentro ese poder, me aseguraré de encontrarle una solución y dejarte saber. ¿Conoces un script del lado del servidor para hacer esto? Gracias. – Michael

+0

@Michael: es menos probable que el script del lado del servidor mueva el puntero del mouse del cliente. Es * posible * que sea posible mover el puntero del mouse mediante el control ActiveX (solo Internet Explorer), el complemento personalizado, el control .NET o posiblemente mediante un applet Java firmado. –

4

No hay manera de lograr el cambio de posición del mouse mediante JavaScript o cualquier secuencia de comandos del lado del cliente. La única razón para esto es no dar un potencial de abuso al lado del cliente como se dijo anteriormente.

4

Puede ocultar el cursor y mostrar otro en un lugar diferente.

Bueno para tener cuando se mueva en un laberinto, por ejemplo. El cursor se ve como detenido, pero lo verá de nuevo cuando se mueva fuera de la ventana.

+0

¿puedo saber cómo es posible ya que necesito implementarlo? – heyanshukla

+1

@heyanshukla Para ocultar [un cursor] (http://www.w3schools.com/cssref/pr_class_cursor.asp), puede usar 'document.body.style.cursor = url ('empty.ico');' if tienes un archivo de icono vacío O puede establecer 'document.body.style.cursor = 'none';' pero esto solo funciona en Firefox. Por supuesto, no puede personalizar las coordenadas del mouse, solo puede ocultar el cursor. – Stano

+0

@Satno, gracias por las actualizaciones. – heyanshukla

2

Como otros usuarios ya han mencionado, no hay ningún mecanismo Javascript para hacer eso. Sin embargo, puede desactivar el mouse e implementar un cursor para hacer lo que necesita. Aquí hay un enlace que explica cómo. How to implement a custom cursor.

Cuestiones relacionadas