Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SVG标记不起作用_Javascript_Svg_Marker - Fatal编程技术网

Javascript SVG标记不起作用

Javascript SVG标记不起作用,javascript,svg,marker,Javascript,Svg,Marker,我用javascript创建了一个标记,如下所示: var marker = document.createElementNS(SVG.ns, "marker"); marker.setAttribute("markerWidth", "3"); marker.setAttribute("markerHeight", "3"); marker.setAttribute("id", "mkrCircle"); marker.setAttribute("viewBox", "0 0 12 12");

我用javascript创建了一个标记,如下所示:

var marker = document.createElementNS(SVG.ns, "marker");
marker.setAttribute("markerWidth", "3");
marker.setAttribute("markerHeight", "3");
marker.setAttribute("id", "mkrCircle");
marker.setAttribute("viewBox", "0 0 12 12");
marker.setAttribute("orient", "auto");
marker.setAttribute("stroke", "#000000");
marker.setAttribute("stroke-width", "2");
marker.setAttribute("fill", "#ffffff");
marker.setAttribute("refX", "12");
marker.setAttribute("refY", "6");

var mkrContent = document.createElementNS(SVG.ns, "circle");
mkrContent.setAttribute("r", "5");
mkrContent.setAttribute("cx", "6");
mkrContent.setAttribute("cy", "6");

marker.appendChild(mkrContent);
defs.appendChild(marker); // <-- defs is svg defs element
var marker=document.createElementNS(SVG.ns,“marker”);
marker.setAttribute(“markerWidth”、“3”);
marker.setAttribute(“markerHeight”、“3”);
setAttribute(“id”、“mkrcle”);
setAttribute(“viewBox”、“0 12”);
setAttribute(“定向”、“自动”);
marker.setAttribute(“笔划”,“000000”);
设置属性(“笔划宽度”、“2”);
marker.setAttribute(“fill”、“#ffffff”);
marker.setAttribute(“refX”,“12”);
marker.setAttribute(“参考文献”,“6”);
var mkrContent=document.createElements(SVG.ns,“圆圈”);
mkrContent.setAttribute(“r”,“5”);
mkrContent.setAttribute(“cx”、“6”);
mkrContent.setAttribute(“cy”,“6”);
marker.appendChild(mkrContent);

defs.appendChild(标记器);// 导致标记器不工作的原因有三个:

  • 您尚未为路径指定笔划颜色,因此它不会显示(标记也不会显示)

  • 当路径没有任何中点时,您已指定
    marker mid
    标记。它只是一条直线段。尝试添加中点

  • 最后,
    markerWidth
    markerHeight
    对于以(6,6)和半径5为圆心的圆来说太小(3x3)。请尝试
    markerWidth=“12”markerHeight=“12”


  • 标记mid对路径正常工作,但对测线不起作用…请检查它是否
    标记mid
    不适用于测线。标记放置在具有多个点(路径、多段线等)的图元的起点、中点和终点处。
    标记mid
    中的“mid”是指多点元素(路径、多段线等)中的2到n-1个点。因为直线只有起点和终点,所以只能使用
    标记起点
    标记终点
    。如果你想要一个标记在你的直线中间,你需要把它分成两条线,或者使用折线。
    <path marker-mid="url(#mkrCircle)" d="M0,0L100,100" stroke-width="3"></path>