SVGSVGElement

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

* 此特性的某些部分可能存在不同级别的支持。

SVGSVGElement 接口提供了对 <svg> 元素的属性的访问,以及操作它们的方法。此接口还包含各种杂项常用工具方法,例如矩阵操作以及控制视觉渲染设备重绘时间的能力。

EventTarget Node Element SVGElement SVGGraphicsElement SVGSVGElement

实例属性

此接口还继承了其父接口 SVGGraphicsElement 的属性。

SVGSVGElement.x 只读

一个 SVGAnimatedLength 对象,对应于给定 <svg> 元素的 x 属性。

SVGSVGElement.y 只读

一个 SVGAnimatedLength 对象,对应于给定 <svg> 元素的 y 属性。

SVGSVGElement.width 只读

一个 SVGAnimatedLength 对象,对应于给定 <svg> 元素的 width 属性。

SVGSVGElement.height 只读

一个 SVGAnimatedLength 对象,对应于给定 <svg> 元素的 height 属性。

SVGSVGElement.viewBox 只读

一个 SVGAnimatedRect 对象,对应于给定 <svg> 元素的 viewBox 属性。

SVGSVGElement.preserveAspectRatio 只读

一个 SVGAnimatedPreserveAspectRatio 对象,对应于给定 <svg> 元素的 preserveAspectRatio 属性。

SVGSVGElement.pixelUnitToMillimeterX 已废弃

一个浮点数,表示视口 X 轴上像素单位(由 CSS2 定义)的大小,其范围约为 70dpi 到 120dpi,并且在支持此功能的系统上,可能实际与目标介质的特性匹配。在无法知道像素大小的系统上,将提供一个合适的默认像素大小。

SVGSVGElement.pixelUnitToMillimeterY 已废弃

一个浮点数,表示视口 Y 轴上像素单位的大小。

SVGSVGElement.screenPixelToMillimeterX 已废弃

DOM Level 2 中的用户界面(UI)事件指示了给定 UI 事件发生的屏幕位置。当浏览器实际知道“屏幕单位”的物理大小时,此浮点属性将表达该信息;否则,用户代理将提供一个合适的默认值(例如 .28mm)。

SVGSVGElement.screenPixelToMillimeterY 已废弃

视口 Y 轴上屏幕像素的相应大小。

SVGSVGElement.useCurrentView 已废弃 非标准

当前最内层 SVG 文档片段的初始视图(即放大和平移之前)可以是“标准”视图(即基于 <svg> 元素上的属性,例如 viewBox),也可以是“自定义”视图(即指向特定 <view> 或其他元素的超链接)。如果初始视图是“标准”视图,则此属性为 false。如果初始视图是“自定义”视图,则此属性为 true

SVGSVGElement.currentView 已废弃 非标准

一个 SVGViewSpec,定义了当前最内层 SVG 文档片段的初始视图(即放大和平移之前)。其含义取决于具体情况:如果初始视图是“标准”视图,则

  • currentView 中的 viewBoxpreserveAspectRatiozoomAndPan 值将与 SVGSVGElement 上直接对应的 DOM 属性值匹配。
  • currentView 中的 transform 值将为 null

如果初始视图是链接到 <view> 元素,则

  • currentView 中的 viewBoxpreserveAspectRatiozoomAndPan 值将与给定 <view> 元素的相应属性值对应。
  • currentView 中的 transform 值将为 null

如果初始视图是链接到其他元素(即非 <view>),则

  • currentView 中的 viewBoxpreserveAspectRatiozoomAndPan 值将与最近的祖先 <svg> 元素上直接对应的 DOM 属性值匹配。
  • currentView 中的 transform 值将为 null

如果初始视图是使用 SVG 视图规范片段标识符(即 #svgView(…))链接到 SVG 文档片段,则

  • currentView 中的 viewBoxpreserveAspectRatiozoomAndPantransform 值将与 SVG 视图规范片段标识符中的值对应。
SVGSVGElement.currentScale

在最外层 <svg> 元素上,此浮点属性指示相对于初始视图的当前缩放因子,以考虑用户的放大和平移操作。DOM 属性 currentScalecurrentTranslate 等价于 2×3 矩阵 [a b c d e f] = [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]。如果启用了“放大”(即 zoomAndPan="magnify"),则效果就像在 SVG 文档片段的最外层(即最外层 <svg> 元素之外)放置了一个额外的变换。

SVGSVGElement.currentTranslate 只读

一个 DOMPointReadOnly 对象,表示考虑用户对最外层 <svg> 元素“放大”所对应的平移因子。对于非最外层 <svg> 元素,其行为未定义。

实例方法

此接口还继承了其父接口 SVGGraphicsElement 的方法。

SVGSVGElement.suspendRedraw() 已废弃

接受一个超时值,表示在以下情况发生之前不应进行重绘:

已调用相应的 unsuspendRedraw()、已调用 unsuspendRedrawAll(),或其计时器已超时。

在不支持交互性的环境(例如,打印媒体)中,不应暂停重绘。对 suspendRedraw()unsuspendRedraw() 的调用应该(但非必须)成对出现。

为了在发生一组 SVG DOM 更改时暂停重绘操作,请在 SVG DOM 更改之前调用类似以下的方法:

js
const suspendHandleID = suspendRedraw(maxWaitMilliseconds);

并在更改之后调用类似以下的方法:

js
unsuspendRedraw(suspendHandleID);

请注意,可以同时使用多个 suspendRedraw() 调用,并且每个此类方法调用都独立于其他 suspendRedraw() 方法调用。

SVGSVGElement.unsuspendRedraw() 已废弃

通过提供先前 suspendRedraw() 调用返回的唯一暂停句柄 ID,取消指定的 suspendRedraw()

SVGSVGElement.unsuspendRedrawAll() 已废弃

取消所有当前活动的 suspendRedraw() 方法调用。此方法在 SVG DOM 调用集结束时最有用,以确保所有待处理的 suspendRedraw() 方法调用已被取消。

SVGSVGElement.forceRedraw() 已废弃

在支持交互性的渲染环境中,强制用户代理立即重绘视口中所有需要更新的区域。

SVGSVGElement.pauseAnimations()

暂停(即停止)此 <svg> 元素对应的 SVG 文档片段中定义的所有当前运行的动画,导致此文档片段对应的动画时钟停止,直到其取消暂停。

SVGSVGElement.unpauseAnimations()

恢复(即取消暂停)SVG 文档片段中定义的当前运行动画,导致动画时钟从暂停时的时间继续。

SVGSVGElement.animationsPaused()

如果此 SVG 文档片段处于暂停状态,则返回 true

SVGSVGElement.getCurrentTime()

返回相对于当前 SVG 文档片段开始时间的当前时间(以秒为单位)。如果在文档时间线开始之前调用 getCurrentTime()(例如,通过在文档的 SVGLoad 事件分派之前在 <script> 元素中运行的脚本),则返回 0

SVGSVGElement.setCurrentTime()

调整此 SVG 文档片段的时钟,建立一个新的当前时间。如果在文档时间线开始之前调用 setCurrentTime()(例如,通过在文档的 SVGLoad 事件分派之前在 <script> 元素中运行的脚本),则方法最后一次调用中的秒值给出文档时间线开始后将跳转到的时间。

SVGSVGElement.getIntersectionList()

返回与提供的矩形相交的图形元素 NodeList。只有当相同的图形元素可以成为 pointer-events 处理中定义的指针事件的目标时,才认为每个候选图形元素匹配。

SVGSVGElement.getEnclosureList()

返回其渲染内容完全包含在提供的矩形内的图形元素的 NodeList。只有当相同的图形元素可以成为 pointer-events 处理中定义的指针事件的目标时,才认为每个候选图形元素匹配。

SVGSVGElement.checkIntersection()

如果给定元素的渲染内容与提供的矩形相交,则返回 true。只有当相同的图形元素可以成为 pointer-events 处理中定义的指针事件的目标时,才认为每个候选图形元素匹配。

SVGSVGElement.checkEnclosure()

如果给定元素的渲染内容完全包含在提供的矩形内,则返回 true。只有当相同的图形元素可以成为 pointer-events 处理中定义的指针事件的目标时,才认为每个候选图形元素匹配。

SVGSVGElement.deselectAll()

取消选择任何选定的对象,包括任何文本字符串和输入框的选择。

SVGSVGElement.createSVGNumber()

在任何文档树之外创建一个 SVGNumber 对象。该对象初始化为 0

SVGSVGElement.createSVGLength()

在任何文档树之外创建一个 SVGLength 对象。该对象初始化为 0 用户单位。

SVGSVGElement.createSVGAngle()

在任何文档树之外创建一个 SVGAngle 对象。该对象初始化为 0 度(无单位)的值。

SVGSVGElement.createSVGPoint()

在任何文档树之外创建一个 DOMPoint 对象。该对象初始化为用户坐标系中的点 (0,0)

SVGSVGElement.createSVGMatrix()

在任何文档树之外创建一个 DOMMatrix 对象。该对象初始化为单位矩阵。

SVGSVGElement.createSVGRect()

在任何文档树之外创建一个 SVGRect 对象。该对象初始化为所有值都设置为 0 用户单位。

SVGSVGElement.createSVGTransform()

在任何文档树之外创建一个 SVGTransform 对象。该对象初始化为单位矩阵变换 (SVG_TRANSFORM_MATRIX)。

SVGSVGElement.createSVGTransformFromMatrix()

在任何文档树之外创建一个 SVGTransform 对象。该对象初始化为给定的矩阵变换(即 SVG_TRANSFORM_MATRIX)。参数矩阵的值被复制,矩阵参数不会被用作 SVGTransform::matrix

SVGSVGElement.getElementById()

在此 SVG 文档片段(即搜索仅限于文档树的子集)中搜索 idelementId 给定的元素。如果找到元素,则返回该元素。如果不存在此类元素,则返回 null。如果多个元素具有此 id,则行为未定义。

事件处理器

以下 Window onXYZ 事件处理程序属性也作为别名可用,目标是 window 对象。但是,建议直接在 window 对象而不是 SVGSVGElement 上监听它们。

注意:SVGSVGElement 上使用 addEventListener() 对下面列出的 onXYZ 事件处理程序不起作用。请改为在 window 对象上监听事件。

SVGSVGElement.onafterprint

在相关文档开始打印或打印预览关闭后触发。

SVGSVGElement.onbeforeprint

在相关文档即将打印或预览打印时触发。

SVGSVGElement.onbeforeunload

当窗口、文档及其资源即将被卸载时触发。

SVGSVGElement.ongamepadconnected

当浏览器检测到游戏手柄已连接或首次使用游戏手柄的按钮/轴时触发。

SVGSVGElement.ongamepaddisconnected

当浏览器检测到游戏手柄已断开连接时触发。

SVGSVGElement.onhashchange

当 URL 的片段标识符(以 # 符号开头并跟随的部分)发生变化时触发。

SVGSVGElement.onlanguagechange

在用户首选语言更改时触发。

SVGSVGElement.onmessage

当窗口收到消息时触发,例如来自另一个浏览上下文的 Window.postMessage() 调用。

SVGSVGElement.onmessageerror

当窗口收到无法反序列化的消息时触发。

SVGSVGElement.onoffline

当浏览器失去网络访问权限并且 Navigator.onLine 的值切换为 false 时触发。

SVGSVGElement.ononline

当浏览器重新获得网络访问权限并且 Navigator.onLine 的值切换为 true 时触发。

SVGSVGElement.onpagehide

当浏览器在显示会话历史记录中的不同页面时隐藏当前页面时触发。

SVGSVGElement.onpageshow

当浏览器由于导航而显示窗口文档时触发。

SVGSVGElement.onpopstate

当用户浏览会话历史记录时,活动历史记录条目更改时触发。

SVGSVGElement.onrejectionhandled

每当 JavaScript Promise 被拒绝且该拒绝已处理时触发。

SVGSVGElement.onstorage

当在另一个文档的上下文中修改存储区域 (localStorage) 时触发。

SVGSVGElement.onunhandledrejection

每当 Promise 被拒绝但该拒绝未处理时触发。

SVGSVGElement.onunload

当文档正在卸载时触发。

规范

规范
Scalable Vector Graphics (SVG) 2
# 接口 SVGSVGElement

浏览器兼容性

另见