Javascript 防止图像从';遮蔽';下面是什么活动?

Javascript 防止图像从';遮蔽';下面是什么活动?,javascript,Javascript,对于类似“射击库”的游戏,有一个带有onMouseOver事件的图像,该事件将显示十字线(跟随鼠标)和一个onMouseOut事件,该事件将隐藏它 但是,当十字线变得可见时,它会覆盖下图,激活其onMouseOut事件以隐藏十字线 这会产生一种非常非常难看的“闪烁”效果 有没有办法防止十字线图像遮挡下面的目标?一个简单的解决方案是为显示它的十字线创建onMouseOver(我知道这是多余的,但它适用于菜单等) 另一个解决方案是在onMouseOut中设置超时以隐藏十字线。它将减少闪烁,十字线将在

对于类似“射击库”的游戏,有一个带有onMouseOver事件的图像,该事件将显示十字线(跟随鼠标)和一个onMouseOut事件,该事件将隐藏它

但是,当十字线变得可见时,它会覆盖下图,激活其onMouseOut事件以隐藏十字线

这会产生一种非常非常难看的“闪烁”效果


有没有办法防止十字线图像遮挡下面的目标?

一个简单的解决方案是为显示它的十字线创建onMouseOver(我知道这是多余的,但它适用于菜单等)

另一个解决方案是在onMouseOut中设置超时以隐藏十字线。它将减少闪烁,十字线将在短时间内从目标处可见

编辑:
另一种方法是在鼠标和元素之间执行碰撞检测,在目标的父元素中将鼠标指针更改为鼠标移动:

代码很长,但它的逻辑是我上面所说的

请注意:
getElementsByCassName
在较旧的浏览器中不起作用,但您可以使用一个目标数组,在创建它们时,将它们添加到aray(可能您已经有了一个)中,并使用它来代替此调用

这一个演示了一个缓和功能,可以使十字线平稳地定位,并且光标在目标上方时隐藏


如果您使用一个div作为背景图像,并使用一个十字线图像作为背景图像,然后将十字线图像作为该div的子对象,会怎么样

我还没有对此进行测试,但由于十字线图像现在将成为背景div内容的一部分,我可以想象它将不再触发鼠标输出。

我相信这正是您想要的。它基本上防止元素成为任何类型鼠标事件的目标,因此它下面的元素可以处理它们。父元素仍然可以对事件作出反应


然而它仅在Firefox、Safari和Chrome的较新版本中受支持,而且它可能不会成为受支持浏览器的绝佳解决方案,但如果您想在任何IE或Opera版本中解决此问题,您还需要一个替代解决方案。不过,我觉得这里值得一提D

鼠标离开图像后,鼠标仍将位于十字线上方(因为十字线将跟随鼠标),并且始终位于十字线上方,除非您非常非常快地移动鼠标。当然。。。我将添加一些其他解决方案,以实现它们。检查答案。这仍然不能消除闪烁,如果用户只是把鼠标放在图像上,它就会消失。该死的,你总是阻挠我的计划!