我正在开发需要与IE 9及更高版本兼容的应用程序。我在一个MouseEvent对象上使用了MovementX属性,但是,此相同的MouseEvent对象在Internet Explorer(9或11)中不具有MovementX属性。
我仔细阅读了Microsoft的文档,确实他们声称在其MouseEvent对象上支持此属性。我已经证实这实际上是一个MouseEvent对象,并且它根本没有该属性。除此属性外,所有其他属性似乎都可用。
有人有这个问题的经验吗?整个互联网对此似乎都保持沉默。
您将需要通过获取后续值screenX
和screenY
值之间的增量来复制其行为。
// 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; }
请注意,如果你在听mousemove
的说,弄不清如果事情被拖动,您应该重置prevX
并prevY
于0 mouseup
,否则你会得到旧的屏幕值!