有什么方法可以使SVG对象可单击吗
Is there any way to make an SVG object clickable?
我正在使用可以在此处查看的SVG:http://n1t2.info/
我只想发布SVG,但由于街道地图层的原因,文件非常大。然而,如果你点击链接,你可以看到它是一个被划分为18个不同svg路径的地图,有许多不同的颜色为它们着色。我使用这张地图的目标是使18个不同部分中的每一个都可以点击,或者能够给它们一个<a href="example.com">
。SVG有可能做到这一点吗?
edit:一条评论建议展示我构建SVG文件的方式。你可以在这里看到我的方法。
IMO,最好的解决方案是SVG <a>
元素。
<svg width="200" height="200" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<a xlink:href="http://stackoverflow.com/questions/15532371/do-svg-docs-support-custom-data-attributes">
<path d="M 100 100 L 300 100 L 200 300 z" fill="orange" stroke="black" stroke-width="3"></path>
</a>
</svg>
通过向每个<path>
元素添加一个data
属性,然后通过jquery或javascript处理,可以非常容易地处理它。
-
首先,将类似
data-url="http://your-url.com"
的内容添加到CCD_ 6元素。示例:<path data-url="http://your-url.com">
。 -
在
</body>
标签关闭之前添加jquery库,步骤#3中的脚本就像:<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <script> //your script </script> </body> </html>
-
您将粘贴以下内容而不是
//your script
:$(document).ready(function(){ $('path').on('click', function(e){ e.preventDefault(); var url = $(this).data('url'); console.log('Moving to:', url); window.open(url, '_blank'); }); });
-
测试它:http://jsfiddle.net/jpvu852d/
在谷歌上搜索发现了这个用于装饰图像地图的jQuery插件,它可能会帮助您实现目标:
http://www.outsharked.com/imagemapster/default.aspx?what.html
相关文章:
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 我想在单击对象时打印日志
- 单击以将相机放置在Three js中的对象附近
- 通过单击事件识别画布上的对象
- 用鼠标单击对象,使画布对象消失
- .on(“单击”,..)不处理使用相同的单击功能创建的对象
- 捕捉.svg — 单击其中一个元素时删除对象
- 如何根据单击访问相应对象的值
- 如何确定使用 javascript/html 单击了哪个对象/图像
- 鼠标单击对象统一 5.3 UI
- 在使用onblur进行输入评估时,是否可以获得单击对象的元素id
- 通过单击对象而不是下拉菜单来更改颜色
- 如何根据单击对象的id调整变量
- 如何使用Javascript在单击对象时播放媒体
- "OnClick”;通过JavaScript创建的事件会立即触发,而不是在单击对象时触发
- 我如何添加一个标签/标签出现在几个对象的顶部,以便当用户单击对象时,标签始终面向相机
- 鼠标单击对象数组javascript画布
- 在单击事件中,我试图根据单击对象's attr()值从XML中获取数据
- 单击对象内部的区域时如何执行函数
- 添加跟踪事件和单击对象的事件侦听器