I am developing an application that needs to be compatible on IE 9 and above. I am using the movementX property on a MouseEvent object, however this same MouseEvent object does not have the movementX property in Internet Explorer (9 or 11).
I ran through Microsoft's documentation and indeed they claim to support this property on their MouseEvent objects. I have verified this is in fact a MouseEvent object, and it simply doesn't have the property. All the other properties appear to be available except this one.
Does anyone have experience with this issue? The internet at large looks pretty silent on this one.
You will need to replicate it's behaviour by taking the delta between subsequent screenX
and screenY
values.
// Store previous screenX/screenY somewhere outside of callback
var prevX = 0;
var prevY = 0;
// Callback whenever the mouse moves
function mousemove(e) {
var movementX = (prevX ? e.screenX - prevX : 0)
var movementY = (prevY ? e.screenY - prevY : 0)
prevX = e.screenX;
prevY = e.screenY;
}
Note that if you are listening to mousemove
to say, figure out if something is being dragged, you should reset prevX
and prevY
to 0 on mouseup
or else you'll get the old screen values!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With