如何在XUL中正确检测屏幕外的mousemove增量?

时间:2015-07-16 17:25:14

标签: javascript firefox-addon mouseevent xul pointerlock

对于我创建的SlyZoom extension,我想实现一个虚拟滑块:一个XUL / XBL元素,作为一个小的静态区域,在mousedown上,鼠标指针变为{{ 1}}我捕获ew-resize事件以检测水平移动,以更改当前缩放级别。

到目前为止,我已经实施了一个试验性的解决方案,使用标准MouseEvent API并使用非常方便的MouseEvent.mozMovementX,即使我没有使用Pointer Lock API,它也似乎存在}。

在此示例图像中,您可以看到临时虚拟滑块上的(Xubuntu)mousemove鼠标指针,该区域是鼠标指针后面的小黑色双箭头,位于{{的左侧1}}:

Virtual slider example

此图像的右侧是屏幕的右边缘;左侧只是裁剪。

但是,正如您可以看到/想象的那样,鼠标指针很可能会定期到达用户的边缘。屏幕在达到令人满意的缩放级别之前。在这些情况下,不幸的是,ew-resize只会保持为零,即使物理指针设备仍在移动。

我试图通过使用Pointer Lock API来解决这个问题。但是,似乎Pointer Lock API不适用于XUL / XBL文档。那是对的吗?或者Pointer Lock API是否也适用于XUL / XBL文档?

在任何情况下,即使指针锁API 为我的XBL元素工作,它也会隐藏鼠标指针,这是不可取的。虽然我想我可以尝试在这种情况下创建一个虚拟鼠标指针,但这很麻烦并且容易出现不稳定的行为,我很害怕。

所以我的问题归结为:

如何在XUL / XBL文档中正确检测超出屏幕边缘的mousemove增量?这有可能,不知何故?

0 个答案:

没有答案