SVGMarkerElement: orient property
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
The orient property of the SVGMarkerElement interface defines how the marker is rotated when it is placed at its position on the shape. It reflects the orient attribute value of the corresponding <marker> element.
Unlike SVGMarkerElement.orientType and SVGMarkerElement.orientAngle, which provide read-only access to the orientation and angle, respectively, the orient property allows you to get and set the orient attribute directly as a string.
Value
A string. Possible values are:
"auto"-
The marker is automatically rotated to follow the direction of the path at the point where it is placed.
"auto-start-reverse"-
If placed by
marker-start, the marker is oriented at an angle 180° from the orientation that would be used ifautowere specified. For all other markers,auto-start-reversemeans the same asauto. - An
<angle>value (e.g.,"45deg") -
The marker is rotated by the specified angle, measured from the horizontal.
- A
<number>value (e.g.,"45") -
The marker is oriented at the specified angle in degrees.
Examples
>Accessing the orient property
<svg
viewBox="0 0 100 100"
width="300"
height="300"
xmlns="http://www.w3.org/2000/svg">
<defs>
<marker
id="arrow"
viewBox="0 0 10 10"
refX="5"
refY="5"
markerWidth="12"
markerHeight="12"
orient="auto-start-reverse">
<path d="M 0 0 L 10 5 L 0 10 z" />
</marker>
</defs>
<polyline
points="10,90 50,10 90,90"
fill="none"
stroke="black"
marker-start="url(#arrow)"
marker-mid="url(#arrow)"
marker-end="url(#arrow)" />
</svg>
<output></output>
We can read the orient property and then set it to a new value:
const marker = document.querySelector("marker");
const log = document.querySelector("output");
if ("orient" in marker) {
// Read the current orient value
log.textContent = `orient: "${marker.orient}"\n`; // "auto-start-reverse"
// Set a new orient value
marker.orient = "90deg";
log.textContent += `after setting "90deg": "${marker.orient}"`;
} else {
log.textContent = "orient is not supported in this browser";
}
Specifications
| Specification |
|---|
| Scalable Vector Graphics (SVG) 2> # __svg__SVGMarkerElement__orient> |