javascript - 防止下面的 'obscuring' onmouseover 事件中的图像?

标签 javascript

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

但是,当十字准线变得可见时,它会覆盖下面的图像,从而激活隐藏十字准线的 onMouseOut 事件。

这会产生“闪烁”效果,非常非常难看。

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

最佳答案

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

另一个解决方案是在 onMouseOut 中设置超时以隐藏十字准线。它将减少闪烁,并且十字线将在目标之外短暂可见。

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

http://jsfiddle.net/sHecT/1/

代码比较长,但是逻辑就是我上面说的。

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

此图演示了一种缓动功能,可平滑定位十字准线,并且光标在目标上方时隐藏

http://jsfiddle.net/sHecT/2/

关于javascript - 防止下面的 'obscuring' onmouseover 事件中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485296/

相关文章:

javascript - 带有选择器的 jQuery next()

javascript - 聚合纸波纹

javascript - Adblock 防止按钮被点击

javascript - 增加 jQuery val() 不起作用

javascript - CoffeeScript 类变量可见性

php - PHP 的 Unicode 十六进制代码点

javascript - Jquery 对我的元素没有影响

c# - 如何检查 MVC 应用程序的应用程序空闲状态

javascript - 将一个网站上的输入文本框连接到另一个网站上的输入文本框?

javascript - 更新 CSS 过渡