SVGSVGElement

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.pixelUnitToMillimeterX 已弃用

一个浮点数,表示像素单位(如 CSS2 定义)沿视窗 X 轴的大小,它代表介于 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 文档片段的初始视图(即放大和平移之前)。含义取决于具体情况:如果初始视图是“标准”视图,则

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

如果初始视图链接到另一个元素(即,不是 <view> 元素),则

如果初始视图使用 SVG 视图规范片段标识符(即,#svgView(…))链接到 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 只读

一个 SVGPoint,表示考虑用户“放大”的平移因子,对应于最外层的 <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()

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

SVGSVGElement.createSVGMatrix()

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

SVGSVGElement.createSVGRect()

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

SVGSVGElement.createSVGTransform()

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

SVGSVGElement.createSVGTransformFromMatrix()

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

SVGSVGElement.getElementById()

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

事件处理程序

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

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

SVGSVGElement.onafterprint

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

SVGSVGElement.onbeforeprint

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

SVGSVGElement.onbeforeunload

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

SVGSVGElement.ongamepadconnected

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

SVGSVGElement.ongamepaddisconnected

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

SVGSVGElement.onhashchange

在 URL 的片段标识符更改时触发(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

当文档正在卸载时触发。

规范

规范
可缩放矢量图形 (SVG) 2
# InterfaceSVGSVGElement

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅