Я создал маркер в JavaScript, это выглядит, как показано ниже:SVG Маркер не работает
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>
Но он не появляется в пути вообще, почему?
Заранее спасибо
маркер середины работает должным образом на пути, но это не работает для линии ... Пожалуйста, вы можете проверить его https://jsfiddle.net/dqoL07cn/ – dom
'маркер-mid' делает не относится к линиям. Маркеры размещаются в начальной, средней и конечной точках элемента с несколькими точками (путь, полилиния и т. Д.). «Середина» в «маркер-середина» относится к точкам от 2 до n-1 в многоточечном элементе (путь, полилиния и т. Д.). Поскольку линия имеет только начало и конечную точку, вы можете использовать только «маркер-старт» и «маркер-конец». Если вы хотите, чтобы маркер находился в середине вашей линии, вам нужно разбить его на две строки или использовать полилинию. https://jsfiddle.net/dqoL07cn/1/ –