有没有办法使图像的非透明部分触发鼠标悬停事件呢?
如果鼠标移动到透明区域,则应触发鼠标离开事件,并且脚本应该监听图像下方层上任何鼠标悬停事件。
是否可能实现?感谢任何帮助。
编辑: 我想在不使用Flash的情况下实现这一点。
有没有办法使图像的非透明部分触发鼠标悬停事件呢?
如果鼠标移动到透明区域,则应触发鼠标离开事件,并且脚本应该监听图像下方层上任何鼠标悬停事件。
是否可能实现?感谢任何帮助。
编辑: 我想在不使用Flash的情况下实现这一点。
您可以使用传统的<map>
和<area>
标签来使用图像。 <area>
标签可以触发JavaScript鼠标事件(一个例子是这个jQuery插件:jQuery maphilight)。
然而,没有好的方法来动态创建地图 - 您将不得不手动创建它,或调用服务器端服务来映射它。
ImageMapster 看起来是一个很好的、易于使用的跨浏览器实现图像区域映射的方式(需要jQuery,支持IE6+)。
另一种选择是使用 raphael.js 创建 SVG 向量图像,可以在 IE6 及以上版本的所有浏览器中使用(除了某些旧版 Android 手机的默认浏览器)。这些图像可以通过 JavaScript 进行各种控制,并且可以具有所有标准事件,例如鼠标悬停、单击等。
Raphael 在这里比 Flash 选项更好,因为它不依赖于 Flash。它比区域映射选项更复杂,学习曲线较陡峭,但对于复杂情况和动态变化的形状,它带来了额外的好处,即可以通过多种方式控制创建的向量图像。
mousemove
事件上事件的位置,看看指针是否悬停在透明部分上。然后,您只需要添加一个变量来跟踪上次检查时它是否在该部分上方。如果使用Flash,这是可能的。
以下是一些提示: