我在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
我用它作为一条路:
<path marker-mid="url(#mkrCircle)" d="M0,0L100,100" stroke-width="3"></path>
但它根本没有出现在路径上,为什么? 提前致谢
答案 0 :(得分:9)
导致标记不起作用的原因有三个:
您没有为路径指定笔触颜色,因此它不会显示(标记也不会显示)。
当路径没有任何中点时,您已指定marker-mid
个标记。它只是一个单线段。尝试d="M0,0L100,100,200,200"
添加中间点。
最后,markerWidth
和markerHeight
对于以(6,6)和半径5为中心的圆圈来说太小(3x3)。请尝试markerWidth="12" markerHeight="12"
。