Foros del Web » Programando para Internet » Javascript »

JavaScript me retorna posición del mouse con decimales, ¿por que?

Estas en el tema de JavaScript me retorna posición del mouse con decimales, ¿por que? en el foro de Javascript en Foros del Web. Hola. éste es el código JS: Código: var canvas = document.getElementById('mundo'); function getMousePos(canvas, evt){ var rect = canvas.getBoundingClientRect(); return{ x: evt.clientX - rect.left, y: evt.clientY ...
  #1 (permalink)  
Antiguo 05/03/2015, 04:22
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
JavaScript me retorna posición del mouse con decimales, ¿por que?

Hola.

éste es el código JS:

Código:
	var canvas = document.getElementById('mundo');

	function getMousePos(canvas, evt){
		var rect = canvas.getBoundingClientRect();
		return{
			x: evt.clientX - rect.left,
			y: evt.clientY - rect.top
			};
		}

	canvas.addEventListener('mousemove', function(evt){
		var mousePos = getMousePos(canvas, evt);
		msj = ('Mouse position: ' + mousePos.x + ', ' + mousePos.y);
		document.getElementById('msj').innerHTML = msj;
		}, false);
y éste el HTML:

Código:
<p class="tc"><canvas id="mundo"></canvas><br /></p><h3 id="msj"></h3>
Lo he probado con FF y CHROME.

y siempre retorna decimales que cambian en algunas zonas del CANVAS.

Chrome muestra decimales solo para la coordenada Y.


¿por que sucede éso?
¿cómo corregirlo?


Gracias!.
  #2 (permalink)  
Antiguo 05/03/2015, 07:11
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: JavaScript me retorna posición del mouse con decimales, ¿por que?

es realmente extraño ya que los dos valores devueltos son en pixels y estos nunca son decimales. ese es todo el código??
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 05/03/2015, 10:56
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: JavaScript me retorna posición del mouse con decimales, ¿por que?

Lo acabo de probar y no sucede lo que dices. ¿No te estarás confundiendo con la coma que pusiste?

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 05/03/2015, 13:23
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: JavaScript me retorna posición del mouse con decimales, ¿por que?

Cita:
Iniciado por Alexis88 Ver Mensaje
¿No te estarás confundiendo con la coma que pusiste?
Gracias Alex.

Si te refieres a la terminación
Código:
}, false);
así lo ejecuto en mi browser.

No he removido NADA del código, (sí, aún tengo el proyecto en blanco).

Al toparme con ése "misterio" pues lo resuelvo con Math.floor, pero es extraño por lo que comenta Isabel, los pixeles son ENTEROS.

... por que retornar decimales?


Gracias!
  #5 (permalink)  
Antiguo 05/03/2015, 13:29
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: JavaScript me retorna posición del mouse con decimales, ¿por que?

Lo decía por la coma en medio del mensaje, pero como puedes ver en el enlace que te dejé, hice la prueba y no sucede lo que dices.

¿Podrías mostrarnos una impresión de pantalla de cuando ocurre lo que nos cuentas? Y, si fuera posible, revisa los valores en consola, tanto de los elementos de las restas que haces, así como los resultados de las mismas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: html, js, mouse, retorna
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:01.