Hola a todos.
Mi pregunta es ¿como puedo saber en todo momento la posición del cursor en mi página? Seguro que es fácil, pero no lo consigo.
Gracias por leer y si contestais, pues muchas más gracias....
| |||
Posición del cursor?? Hola a todos. Mi pregunta es ¿como puedo saber en todo momento la posición del cursor en mi página? Seguro que es fácil, pero no lo consigo. Gracias por leer y si contestais, pues muchas más gracias.... |
| |||
mmmmm prueba ésto: En el Body: <form name="form"> x = <input type="text "name="x" id="x" size=5 value=0><br> y = <input type="text "name="y" id="y" size=5 value=0> </form> <script> /* El script déjalo SIEMPRE debajo del formulario (incluyendo sus cajas de teto, o no te funcionará) */ <!-- var poaX=0, poaY=0, tiempo=200; if(document.layers){ window.captureEvents(Event.MOUSEMOVE); window.onMouseMove=ratonSeMueve; } else document.onmousemove=ratonSeMueve; function ratonSeMueve(yaSeMovio){ if(document.all){ poaX=event.x+document.body.scrollLeft; poaY=event.y+document.body.scrollTop; } else{ poaX=yaSeMovio.pageX; poaY=yaSeMovio.pageY; } } PonXY(); function PonXY(){ document.form.x.value=poaX; document.form.y.value=poaY; setTimeout("PonXY();",tiempo); } // --> </script> Un saludo! |
| |||
Gracias, funciona bien, pero tengo algunas preguntas... --------------------------------------------- setTimeout("PonXY();",tiempo); --------------------------------------------- Esta sentencia,¿Que hace exactamente?, ¿es como un refresco?¿por que la variable tiempo vale 200?.... ---------------------------------------------- if(document.layers){ window.captureEvents(Event.MOUSEMOVE); window.onMouseMove=ratonSeMueve; } else document.onmousemove=ratonSeMueve; ---------------------------------------------- Con este código, ¿cada vez que movemos el ratón se ejecuta ratonSeMueve? Gracias por todo. |
| |||
Sorry! No lo ví Ya respondieron una parte, es correcta la respuesta. La segunda: if(document.layers){ window.captureEvents(Event.MOUSEMOVE); window.onMouseMove=ratonSeMueve; } else document.onmousemove=ratonSeMueve; Significa, que si se captura movimiento sobre el ratón, te irá poniendo la posición en cada caja de texto (en continuo refresco), y que si no se captura movimiento del ratón, establezca la posición fija en la que ésta se encuentre. (El refresco depende de los milisegundos, por ello una cantidad baja). Espero se haya entendido.. |
| ||||
Otra forma más corta: (copia esto en el head) <script> function mouseMove(e) { var x = (document.layers)? e.pageX : event.x+document.body.scrollLeft var y = (document.layers)? e.pageY : event.y+document.body.scrollTop status = "x:"+x+" y:"+y return true } document.onmousemove = mouseMove; if (document.layers) document.captureEvents(Event.MOUSEMOVE); </script> El resultado te lo muestra en la barra de estado. |
| |||
Vaya, gracias a todos, ya me voy aclarando, pero aún tengo algunas dudas (soy un pesado) Las preguntas son para los dos códigos que me habeis dado (gracias): ¿Por que se hacen cosas distintas si document.layers es true o false?, es decir,¿Que significa que sea true o false?¿Que existen capas en el documento? y ¿Como influye eso? Joer que pesao... Bueno, ya me habeis ayudado mucho, pero si teneis ganas pues me podeis ayudar un poquito más. Gracias mil |
| |||
Modificando el código que puso carlitos, en concreto la línea en que muestra en el status la posición, para mostrarla en una celda: <script> function mouseMove(e) { var x = (document.layers)? e.pageX : event.x+document.body.scrollLeft var y = (document.layers)? e.pageY : event.y+document.body.scrollTop document.getElementById('xy').innerHTML = "x:"+x+" y:"+y return true } document.onmousemove = mouseMove; if (document.layers) document.captureEvents(Event.MOUSEMOVE); </script> <table border=0 cellpadding=0 cellspacing=0> <tr><td id="xy">x:0 y:0</td></tr></table> PD: Es mejor el código que puso carlitos a mi gusto, ya que es mucho más sencillo y mucho menos código. Un saludo! |