检测形状上的单击/悬停,而不是其长方体模型';s矩形,带有Javascript或CSS

检测形状上的单击/悬停,而不是其长方体模型';s矩形,带有Javascript或CSS,javascript,html,css,svg,event-handling,Javascript,Html,Css,Svg,Event Handling,我希望能够通过CSS在形状上单击/悬停(带有SVG源文件的标签)而不是在其周围的长方体模型上进行检测。在下图中,将侦听单击/悬停的区域为浅蓝色,而“额外”属性为橙色 在我的特殊情况下,我有两个圆圈,一个在另一个的上面-下面的一个在听点击/悬停。因此,我希望浅蓝色的环空只听他们。然而,根据长方体模型,为了让底层圆圈检测到点击/悬停,用户必须点击或悬停在方形橙色条纹上 我认为您需要从SVG转换图像,并使用图像映射多边形指定onclick事件的区域 我认为您需要从SVG转换图像,并使用图像映射多边形

我希望能够通过CSS在形状上单击/悬停(带有SVG源文件的标签)而不是在其周围的长方体模型上进行检测。在下图中,将侦听单击/悬停的区域为浅蓝色,而“额外”属性为橙色

在我的特殊情况下,我有两个圆圈,一个在另一个的上面-下面的一个在听点击/悬停。因此,我希望浅蓝色的环空只听他们。然而,根据长方体模型,为了让底层圆圈检测到点击/悬停,用户必须点击或悬停在方形橙色条纹上


我认为您需要从SVG转换图像,并使用图像映射多边形指定onclick事件的区域


我认为您需要从SVG转换图像,并使用图像映射多边形指定onclick事件的区域


您也可以通过使用两个div(一个环绕另一个)来实现这一点,并将cSS边框半径和背景图像设置为您的图像。使用和,您可以将单击行为设置为您的收藏夹

HTML

<div class="big_cycle" onclick="alert ('clicked');">
    <div class="small_cycle" onclick="event.cancelBubble = true; event.stopPropagation ();"></div>
</div>

我制作了一个简单的Plunker来演示:

您也可以通过使用两个div(一个环绕另一个)来实现这一点,并将cSS边框半径和背景图像设置为您的图像。使用和,您可以将单击行为设置为您的收藏夹

HTML

<div class="big_cycle" onclick="alert ('clicked');">
    <div class="small_cycle" onclick="event.cancelBubble = true; event.stopPropagation ();"></div>
</div>

我制作了一个简单的Plunker来演示:

不可能,除非您放弃使用
标记,因为当SVG用作图像时,它基本上就像光栅一样工作。我明白了,我不这么认为,因为使用
过滤器:drop-shadow()
CSS属性,浏览器可以感知SVG文件的边缘。无论如何,如果不使用
标记,我怎么能插入SVG图像呢?在文本编辑器中打开SVG,然后抓取代码。除非您放弃使用
标记,否则这是不可能的,因为当SVG用作图像时,它基本上就像光栅一样工作。我明白了,我不这么认为,因为使用
过滤器:drop-shadow()
CSS属性浏览器知道SVG文件的边缘。无论如何,如果不使用
标记,如何插入SVG图像?在文本编辑器中打开SVG,然后抓取代码