当前位置:  开发笔记 > 编程语言 > 正文

Internet Explorer中显然不支持MouseEvent MovementX属性

如何解决《InternetExplorer中显然不支持MouseEventMovementX属性》经验,为你挑选了1个好方法。

我正在开发需要与IE 9及更高版本兼容的应用程序。我在一个MouseEvent对象上使用了MovementX属性,但是,此相同的MouseEvent对象在Internet Explorer(9或11)中不具有MovementX属性。

我仔细阅读了Microsoft的文档,确实他们声称在其MouseEvent对象上支持此属性。我已经证实这实际上是一个MouseEvent对象,并且它根本没有该属性。除此属性外,所有其他属性似乎都可用。

有人有这个问题的经验吗?整个互联网对此似乎都保持沉默。



1> Dominic K..:

您将需要通过获取后续值screenXscreenY值之间的增量来复制其行为。

// 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的说,弄不清如果事情被拖动,您应该重置prevXprevY于0 mouseup,否则你会得到旧的屏幕值!

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有