javascript - SVG 标记不起作用

标签 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");
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>

但它根本没有出现在路径中,为什么?
提前致谢

最佳答案

导致标记不起作用的三个原因:

  1. 您没有为路径指定描边颜色,因此它不会显示(标记也不会显示)。

  2. 当路径没有任何中点时,您指定了 marker-mid 标记。它只是一个线段。尝试使用 d="M0,0L100,100,200,200" 添加中点。

  3. 最后,对于以 (6,6) 为中心、半径为 5 的圆,您的 markerWidthmarkerHeight 太小 (3x3)。尝试 markerWidth="12"markerHeight="12"

http://jsfiddle.net/fP5EY/

关于javascript - SVG 标记不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18162299/

相关文章:

javascript - CSS:每隔几秒更改一次背景?

javascript - 如果输入字段为空显示 div

javascript - 为什么浏览器先加载 HTML 然后加载 Bootstrap?

javascript - Express.js 服务器错误处理 (404)。在我什至被允许处理错误之前,服务器吓坏了并抛出异常

javascript - SVG react 组件未渲染/黑色矩形

python - 如何旋转 Bokeh 图中的箭头标记以显示风速方向?

svg - 设置倾斜变换中心

html - SVG/CSS 三 Angular 形抠图

leaflet - 隐藏传单中的默认标记工具提示

谷歌地图中每个标记的Android不同信息窗口