【问题标题】:how to make javascript ignore transparent image areas during hover and click如何使javascript在悬停和单击期间忽略透明图像区域
【发布时间】:2014-08-06 04:22:11
【问题描述】:

我找到了许多关于这个主题的帖子,但似乎没有一个能满足我的特定需求。我的最终目标是使用 html5、css3 和 javascript 重现 Nike ID 基于 Flash 的自定义。

我立即的下意识反应是将图像切成许多不规则形状的图像切片。然后使用一些图像编辑软件(photoshop 等)为每个图像切片创建额外的副本,每个副本带有不同的颜色配置文件。最后,我会以这样一种方式定位所有图像切片,它们会重新组合原始图像,有点像拼图游戏。

这就是我碰壁的地方。每个此类图像切片的不规则形状的本质将导致其某些区域是透明的。更复杂的是,其中一些透明区域必然位于底层图像切片的活动切片区域之上,从而阻止后者注册悬停和单击鼠标动作。当然,有很多关于如何使 javascript 忽略透明区域的帖子。但是,我还没有遇到一个解决方案,透明区域会真正透明,从而允许底层图像注册鼠标交互。

所以问题是是否有办法让透明区域真正透明?还是我错了?

任何建议将不胜感激!谢谢。

【问题讨论】:

  • 我只见过在 html5 画布元素上完成此操作。这是一个使用 KineticJS html5canvastutorials.com/kineticjs/… 的示例
  • @haxxxton 这看起来更接近我正在寻找的东西。我现在只需要弄清楚如果这些事件发生在透明(或根据 KineticJS 的非命中区域)区域中,如何将鼠标事件冒泡到下面的图像。

标签: javascript jquery html css


【解决方案1】:

这可以通过<map><area> 标签来实现。

http://www.image-maps.com/ 允许您上传图像并为您生成 HTML 代码。您需要做的就是拖动某些区域。

【讨论】:

  • @Olivia,这是一个很棒的工具,谢谢!我可以将任何预定义的图像动态加载到选定区域吗?
  • dynamically 是什么意思?通常你会写这样的东西w3schools.com/tags/tryit.asp?filename=tryhtml_areamap.
  • 我正在寻找一种方法来选择一个区域,选择一种颜色(从另一个小部件,就像在 Nike ID 上一样),然后在所选区域内放置另一个带有所选颜色的预定义图像.我不能让画布只将颜色涂到该区域,因为它看起来很平坦。如果您查看 Nike ID,每个图像区域都有纹理和颜色过渡(抱歉,我不熟悉正确的图像术语),这就是为什么必须将预定义图像加载到选定区域的原因。使用图像映射可以吗?
猜你喜欢
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 2013-08-04
  • 2014-01-14
  • 2013-01-25
  • 2014-02-18
  • 2011-07-16
  • 1970-01-01
相关资源
最近更新 更多