Foros del Web » Programando para Internet » Javascript »

Posición del cursor??

Estas en el tema de Posición del cursor?? en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/11/2002, 19:20
 
Fecha de Ingreso: noviembre-2002
Mensajes: 3
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta 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....
  #2 (permalink)  
Antiguo 29/11/2002, 20:10
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 4 meses
Puntos: 4
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!
  #3 (permalink)  
Antiguo 30/11/2002, 06:19
 
Fecha de Ingreso: noviembre-2002
Mensajes: 3
Antigüedad: 21 años, 5 meses
Puntos: 0
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.
  #4 (permalink)  
Antiguo 30/11/2002, 20:20
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola Plagelao.

La función setTimeout("PonXY();",tiempo) lo que hace es activar un "timer" que dispara la funcìón que colocas en el primer parámetro, una vez transcurridos la cantidad de milisegundos que indiques en el segundo parámetro.

Entonces, ese valor de doscientos indica que la función PonXY se va a ejecutar en 0,2 segundos.

Saludos.
  #5 (permalink)  
Antiguo 30/11/2002, 20:26
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 4 meses
Puntos: 4
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..
  #6 (permalink)  
Antiguo 01/12/2002, 05:34
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
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.
  #7 (permalink)  
Antiguo 01/12/2002, 06:15
 
Fecha de Ingreso: noviembre-2002
Mensajes: 3
Antigüedad: 21 años, 5 meses
Puntos: 0
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
  #8 (permalink)  
Antiguo 01/12/2002, 06:40
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Se hacen cosas distintas, según el navegador.

con document.layer --> se detecta si el navegador usado es netscape.
  #9 (permalink)  
Antiguo 01/12/2002, 11:47
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 4 meses
Puntos: 4
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!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:13.