SVGMarkerElement
        
        Baseline  广泛可用  *
        
        
          
                
              
                
              
                
              
        
        
      
      
    SVGMarkerElement 接口提供了对 <marker> 元素属性的访问,以及操作它们的方法。<marker> 元素定义了用于在形状上绘制标记的图形。
以下属性和方法都返回或作用于由 SVGMarkerElement 表示的 <marker> 元素的属性。
实例属性
此接口还继承了其父接口 SVGElement 的属性。
- SVGMarkerElement.markerUnits只读
- 
返回一个 SVGAnimatedEnumeration对象,具有以下值之一:
- SVGMarkerElement.markerWidth只读
- 
返回一个 SVGAnimatedLength对象,其中包含<marker>视口(viewport)的宽度。
- SVGMarkerElement.markerHeight只读
- 
返回一个 SVGAnimatedLength对象,其中包含<marker>视口(viewport)的高度。
- SVGMarkerElement.orientType只读
- 
返回一个 SVGAnimatedEnumeration对象,具有以下值之一:
- SVGMarkerElement.orientAngle只读
- 
返回一个 SVGAnimatedAngle对象,其中包含orient属性的角度值。
- SVGMarkerElement.refX只读
- 
返回一个 SVGAnimatedLength对象,其中包含<marker>元素的refX属性的值。
- SVGMarkerElement.refY只读
- 
返回一个 SVGAnimatedLength对象,其中包含<marker>元素的refY属性的值。
- SVGMarkerElement.viewBox只读
- 
返回一个 SVGAnimatedRect对象,其中包含一个SVGRect,该对象包含<marker>元素上viewBox属性设置的值。
- SVGMarkerElement.preserveAspectRatio只读
- 
返回一个 SVGPreserveAspectRatio对象,其中包含<marker>视口(viewport)上preserveAspectRatio属性设置的值。
实例方法
此接口还继承了其父接口 SVGElement 的方法。
- SVGMarkerElement.setOrientToAuto()
- 
将 orient属性的值设置为auto。
- SVGMarkerElement.setOrientToAngle()
- 
将 orient属性的值设置为特定的角度值。
示例
以下 SVG 将在示例中使用。
<svg id="svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <marker
      id="arrow"
      viewBox="0 0 10 10"
      refX="5"
      refY="5"
      markerWidth="6"
      markerHeight="6"
      orient="90">
      <path d="M 0 0 L 10 5 L 0 10 z" />
    </marker>
  </defs>
</svg>
查找标记的宽度
markerWidth 属性返回一个 SVGAnimatedLength,其中包含一个 SVGLength,该对象的值是 markerWidth 属性的值。
let marker = document.getElementById("arrow");
console.log(marker.markerWidth.baseVal.value); // 6
更新方向角度
在下面的示例中,使用通过 SVGElement.createSVGAngle() 创建的 SVGAngle,使用 setOrientToAngle() 方法更新 orient 属性的值。
let svg = document.getElementById("svg");
let marker = document.getElementById("arrow");
console.log(marker.orientAngle.baseVal.value); // value in SVG above - 90
let angle = svg.createSVGAngle();
angle.value = "110";
marker.setOrientToAngle(angle);
console.log(marker.orientAngle.baseVal.value); // new value - 110
规范
| 规范 | 
|---|
| Scalable Vector Graphics (SVG) 2 # 接口 SVGMarkerElement | 
浏览器兼容性
加载中…