6

这与其他所有问题都不一样。 我已经阻止 Chrome 在拖动时进入文本选择模式。 (编辑:我只想锁定图标/外观,不限制位置或移动,并且只在 mousedown 和 mouseup 之间)我想避免的问题是 Chrome 在拖动时将光标更改为光标下的任何内容(即-i-beam 在文本输入控件上,在超链接上手等)。

IE 和 FireFox/Moz 支持我在 mousedown 事件中调用的 element.setCapture(),它将这些浏览器“锁定”到该元素,以便鼠标光标停留在该元素的光标所在的位置。非常好。Chrome 不支持我所知道的该功能或类似的功能。

通过查看文档对象而不是被单击的元素上的 mousemove 和 mouseup 事件,我仍然能够获得大部分setCapture() 行为,因为我可以跟踪发生在元素外部甚至外部的鼠标事件浏览器窗口。但是,我仍然有一个问题,鼠标光标在 Chrome 中发生了变化。

4

2 回答 2

3

我相信您正在寻找Pointer Control Lock API,这是一种最近推出的用户控制用户输入设备的方法(如果允许)。最大的用例是游戏。

如果没有安全且受支持的 API,允许网站接管用户输入控件将是灾难性的(即点击劫持和强制恶意软件下载),因此如果您希望“锁定”光标,那么这可能是您唯一的选择。

于 2013-01-29T15:49:08.887 回答
0

我通常将一个元素放置在其他所有内容上,并将预期的光标放在鼠标按下并在鼠标抬起时将其删除。远非最干净的方法,但它对我有用。

于 2014-04-10T13:58:43.787 回答