Ecco l'equivalente POJS di altre risposte che è cross browser torna a IE 6 (e probabilmente IE 5, ma io non ce l'hanno per testare più). Non ci sono variabili globali anche:
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;
});
}
}());
Ma ci sono problemi più grandi. Gli eventi chiave vengono inviati solo se un elemento che può ricevere input da tastiera è focalizzato (input, textarea e così via). Inoltre, se l'utente scorre lo schermo senza muovere il mouse, probabilmente le coordinate saranno errate.
Una soluzione alternativa è quella di utilizzare i CSS per sostituire il cursore con un'animazione personalizzata.
Grazie per la fornitura di una soluzione che non si basa su jQuery: p io odio jQuery ... –
Hehe, lo faccio anch'io, in segreto. :-) –
Questo presuppone nuovamente che l'utente sposti il mouse. Cosa succede quando un utente preme il tasto Maiusc? – arviman