Aquí es el equivalente POJS de otras respuestas que es transversal navegador de nuevo a IE 6 (y probablemente IE 5 pero no tienen que probar nada más). Sin variables globales, incluso:
function addEvent(el, evt, fn) {
if (el.addEventListener) {
el.addEventListener(evt, fn, false);
} else if (el.attachEvent) {
el.attachEvent('on' + evt, fn);
}
}
(function() {
var x, y;
window.onload = function() {
addEvent(document.body, 'mousemove', function(e) {
// Support IE event model
e = e || window.event;
x = e.pageX || e.clientX;
y = e.pageY || e.clientY;
});
// Show coords, assume element with id "d0" exists
addEvent(document.body, 'keypress', function() {
document.getElementById('d0').innerHTML = x + ',' + y;
});
}
}());
Pero hay problemas mayores. Los eventos clave solo se envían si un elemento que puede recibir entrada de teclado está enfocado (entrada, área de texto, etc.). Además, si el usuario se desplaza por la pantalla sin mover el mouse, las coordenadas probablemente serán incorrectas.
Una solución alternativa es usar CSS para reemplazar el cursor con una animación personalizada.
Gracias por proporcionar una solución que no depende de jQuery: p Detesto jQuery ... –
Jeje, yo también, en secreto. :-) –
Esto nuevamente asume que el usuario mueve el mouse. ¿Qué sucede cuando un usuario presiona la tecla Mayús solo? – arviman