对于类似“射击场”的游戏,有些图像带有 onMouseOver 事件,该事件将显示十字准线(跟随鼠标),而 onMouseOut 事件将隐藏它。
但是,当十字准线变得可见时,它会覆盖下面的图像,从而激活隐藏十字准线的 onMouseOut 事件。
这会产生“闪烁”效果,非常非常难看。
有没有办法防止十字线图像遮挡下面的目标?
最佳答案
一个简单的解决方案是为显示它的十字线创建一个 onMouseOver (我知道这是多余的,但它适用于菜单等)。
另一个解决方案是在 onMouseOut 中设置超时以隐藏十字准线。它将减少闪烁,并且十字线将在目标之外短暂可见。
编辑:
另一种方法是在鼠标和元素之间执行碰撞检测,将目标父元素中的 mouseOver 更改为 mouseMove:
代码比较长,但是逻辑就是我上面说的。
请注意:getElementsByClassName
在旧版浏览器中不起作用,但您可以使用一组目标,在创建它们时将它们添加到数组中(可能您已经有一个)并用它来代替此调用;
此图演示了一种缓动功能,可平滑定位十字准线,并且光标在目标上方时隐藏
关于javascript - 防止下面的 'obscuring' onmouseover 事件中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485296/