svg画线

作者: 我叫Aliya但是被占用了 | 来源:发表于2020-11-27 20:22 被阅读0次

参考: https://segmentfault.com/a/1190000009556665

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1802.4140625 1159.5" style="width: 1802.41px; height: 1159.5px;">
    <defs>
        <marker id="drag_arrow" refX="5" refY="2.5" markerWidth="5" markerHeight="5" orient="auto" markerUnits="strokeWidth" class="drag_fill"><polyline points="0,0 5,2.5 0,5 0.2,2.5"/></marker>
    </defs>
</svg>
var svg = document.querySelector('svg');
// 创建g标签,记录线的开始结束位置
var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
g.setAttribute("data-arc-target", arc.target);
g.setAttribute("data-arc-origin", arc.origin);
svg.append(g);

// path
var path = document.createElementNS("http://www.w3.org/2000/svg", "path");
path.setAttribute("stroke", "black");
path.setAttribute("marker-end", 'url(#drag_arrow)'); // 箭头
path.setAttribute('d', `M 开始x,开始y Q 曲度x,曲度y, 结束x,结束y`);
g.append(path);

// 线上文字的背景
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); 
rect.setAttribute("fill", "#fff");
rect.onmouseover = LineHover;
rect.onmouseout = LineHover;
g.append(rect);

// 线上文字
var label = document.createElementNS("http://www.w3.org/2000/svg", "text");
label.setAttribute("fill", "#000"); 
label.setAttribute("x", x);
label.setAttribute("y", y);
label.textContent = 'name';
g.append(label); 

// 背景padding 5
var pos = label.getBoundingClientRect();
rect.setAttribute("x", pos.x - 5);
rect.setAttribute("y", pos.y - svgTop - 5);
rect.setAttribute("width", pos.width + 10);
rect.setAttribute("height", pos.height + 10);

相关文章

  • svg画线

    参考: https://segmentfault.com/a/1190000009556665[https://s...

  • svg,canvas波浪效果及svg的path学习记录

    svg主要是利用animate 的 attributeName="d"来改变轨迹 svg常用的M(移动),L(画线...

  • svg

    svg双闭合标签,默认宽高300*150 必须在svg标签内绘制图形 画线 line 绘制折线 polyline...

  • 图标转化svg

    svg简介 svg就是一个小型的被分解的canvas,它可以画线段、圆形、椭圆、方形、图片等等,还有制作动画,每个...

  • Anime+Vue

    效果图: 代码如下:

  • 推开Canvas&&SVG的大门,一起走向ECh

    最近遇到线条处理的问题,所以将之前使用过的Canvas,SVG(从实现画线的角度进行出发),进行总结;顺便将ECh...

  • Android图片之svg

    1.SVG是什么2.SVG优点3.SVG使用4.获取SVG5.封装使用6.SVG动画 1.SVG是什么? SVG(...

  • SVG的使用

    SVG图片 一. SVG介绍 1.1. SVG概念解析 SVG全称: Scalable Vector Graphi...

  • 资源

    SVG svg icon 对应git(node.js写的) svg animation study svg cs...

  • (第六天)HTML5之SVG的了解与使用&Web数据存储

    SVG 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用...

网友评论

      本文标题:svg画线

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