我希望使用SVG实现此页面中的效果。如您所见,当用户在产品上绘制的多边形热点上移动鼠标时,它使用一系列PNG透明叠加层。
我想要实现的是相同的效果,但是不需要创建大量PNG文件,因此当用户在区域上移动鼠标时,透明形状(带有链接)将出现在顶部。 SVG形状将从一组坐标构建,就像图像映射上的多边形热点一样。
所以,我的第一个问题是,这可以用普通的SVG完成,还是需要使用Raphael之类的工具来实现?从未在SVG中看到过这种效果,如果有人有类似的示例,那将非常有用。
提前感谢。
我想要实现的是相同的效果,但是不需要创建大量PNG文件,因此当用户在区域上移动鼠标时,透明形状(带有链接)将出现在顶部。 SVG形状将从一组坐标构建,就像图像映射上的多边形热点一样。
所以,我的第一个问题是,这可以用普通的SVG完成,还是需要使用Raphael之类的工具来实现?从未在SVG中看到过这种效果,如果有人有类似的示例,那将非常有用。
提前感谢。
有几种方法可以使用普通的SVG获得此效果。可能最简单的方法是在SVG内部使用CSS。例如:
<style>
.overlay:hover
{
opacity: 0.5;
}
</style>
<svg>
<a xlink:href="http://www.wherever/you/want/to/link/to.com">
<path class="overlay" d="Coordinates of your shape..." />
</a>
</svg>
我在以下网址中写了关于其他方法的内容: http://www.petercollingridge.co.uk/data-visualisation/mouseover-effects-svgs
该网址介绍了各种与鼠标悬停效果有关的SVG技术。是的,可以只使用SVG进行操作,无论是否使用JavaScript。
一种实现效果的方法是在要变白的图像上覆盖一个白色半透明路径。另一种方法是直接使用SVG滤镜处理图像,类似于我在这里或这里所做的重新着色PNG(查看页面源代码并随意重用)。
您可能需要使用'pointer-events'属性。这里有一个示例,展示了如何检测svg形状的填充和/或描边上的鼠标事件,即使该形状是不可见的。