美文网首页
html 类似地图的不规则图形事件处理

html 类似地图的不规则图形事件处理

作者: 想溜了的蜗牛 | 来源:发表于2020-11-04 11:11 被阅读0次

需求

简单脸部分区图,点击时传递位置信息

思路

因为只有一张图片,所以目前找到的方法是使用向量图编辑工具Inkscape编辑,在分区边界加上 path, 并保存为 svg 文件。 然后将 svg 文件去掉不需要属性,直接放入小程序代码中操作。

重要的点

Inkscape的使用步骤

1.打开Inkscape 后, 文件 -> 打开 选择一张图片,界面展示如下


image.png

需注意的是导入类型建议不用内嵌的,内嵌会将图片转为base64代码,并放入svg文件;我们只引入即可。

  1. 绘制相应的曲线,下图为主要操作


    image.png
  2. 将文件保存为svg, 可以看到相应的 path 代码

<svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
   ......
  <g
      id="g91"
      inkscape:label="Image"
      inkscape:groupmode="layer">
     <image
        id="image93"
        xlink:href="file:///imagePath.jpg"
        preserveAspectRatio="none"
        height="1585.3333"
        width="1109.3333" />
       <path onclick="test('area1');"
        id="area1"
        d="M 113.13164,619.24689 C 347.33398,
    .....

path的数量看绘制的数量多少,一块块的需要绘制成闭环的。
svg 加上简单的样式,效果是鼠标放上去,会高亮,移开后正常。就象中国地图省份的操作类似。
样式如下:

    svg { height: 50vw; }
    path { fill: #d3d3d3; transition: .6s fill; opacity: 0.6;}
    path:hover { fill: #eee;opacity: 0.6; }

注:
以上参考文章 Create responsive SVG image maps
Inkspace下载可以到 官网

相关文章

网友评论

      本文标题:html 类似地图的不规则图形事件处理

      本文链接:https://www.haomeiwen.com/subject/tpwwvktx.html