SVGSVGElement

The SVGSVGElement interface provides access to the properties of <svg> elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices.

Properties

This interface also inherits properties from its parent, SVGGraphicsElement and also implements the ones from SVGZoomAndPan, SVGFitToViewBox, and WindowEventHandlers.

SVGSVGElement.x Read only
An SVGAnimatedLength corresponding to the x attribute of the given <svg> element.
SVGSVGElement.y Read only
An SVGAnimatedLength corresponding to the y attribute of the given <svg> element.
SVGSVGElement.width Read only
An SVGAnimatedLength corresponding to the width attribute of the given <svg> element.
SVGSVGElement.height Read only
An SVGAnimatedLength corresponding to the height attribute of the given <svg> element.
SVGSVGElement.contentScriptType
An SVGAnimatedLength corresponding to the contentScriptType attribute of the given <svg> element.
SVGSVGElement.contentStyleType
An SVGAnimatedLength corresponding to the contentStyleType attribute of the given <svg> element.
SVGSVGElement.viewport
An SVGRect containing the position and size of the viewport (implicit or explicit) that corresponds to the given <svg> element. When the browser is actually rendering the content, then the position and size values represent the actual values when rendering. The position and size values are unitless values in the coordinate system of the parent element. If no parent element exists (i.e., <svg> element represents the root of the document tree), if this SVG document is embedded as part of another document (e.g., via the HTML <object> element), then the position and size are unitless values in the coordinate system of the parent document. (If the parent uses CSS or XSL layout, then unitless values represent pixel units for the current CSS or XSL viewport.)
SVGSVGElement.pixelUnitToMillimeterX
A float representing the size of the pixel unit (as defined by CSS2) along the x-axis of the viewport, which represents a unit somewhere in the range of 70dpi to 120dpi, and, on systems that support this, might actually match the characteristics of the target medium. On systems where it is impossible to know the size of a pixel, a suitable default pixel size is provided.
SVGSVGElement.pixelUnitToMillimeterY
A float representing the size of a pixel unit along the y-axis of the viewport.
SVGSVGElement.screenPixelToMillimeterX
User interface (UI) events in DOM Level 2 indicate the screen positions at which the given UI event occurred. When the browser actually knows the physical size of a "screen unit", this float attribute will express that information; otherwise, user agents will provide a suitable default value (such as .28mm).
SVGSVGElement.screenPixelToMillimeterY
Corresponding size of a screen pixel along the y-axis of the viewport.
SVGSVGElement.useCurrentView
The initial view (i.e., before magnification and panning) of the current innermost SVG document fragment can be either the "standard" view, i.e., based on attributes on the <svg> element such as viewBox) or on a "custom" view (i.e., a hyperlink into a particular <view> or other element). If the initial view is the "standard" view, then this attribute is false. If the initial view is a "custom" view, then this attribute is true.
SVGSVGElement.currentView
An SVGViewSpec defining the initial view (i.e., before magnification and panning) of the current innermost SVG document fragment. The meaning depends on the situation: If the initial view was a "standard" view, then: If the initial view was a link into a <view> element, then: If the initial view was a link into another element (i.e., other than a <view>), then: If the initial view was a link into the SVG document fragment using an SVG view specification fragment identifier (i.e., #svgView(…)), then:
SVGSVGElement.currentScale
On an outermost <svg> element, this float attribute indicates the current scale factor relative to the initial view to take into account user magnification and panning operations. DOM attributes currentScale and currentTranslate are equivalent to the 2×3 matrix [a b c d e f] = [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If "magnification" is enabled (i.e., zoomAndPan="magnify"), then the effect is as if an extra transformation were placed at the outermost level on the SVG document fragment (i.e., outside the outermost <svg> element).
SVGSVGElement.currentTranslate Read only
An SVGPoint representing the translation factor that takes into account user "magnification" corresponding to an outermost <svg> element. The behavior is undefined for <svg> elements that are not at the outermost level.

Methods

This interface also inherits methods from its parent, SVGGraphicsElement and also implements the ones from SVGZoomAndPan, SVGFitToViewBox, and WindowEventHandlers.

SVGSVGElement.suspendRedraw()

Takes a time-out value which indicates that redraw shall not occur until:

the corresponding unsuspendRedraw() call has been made, an unsuspendRedrawAll() call has been made, or its timer has timed out.

In environments that do not support interactivity (e.g., print media), then redraw shall not be suspended. Calls to suspendRedraw() and unsuspendRedraw() should, but need not be, made in balanced pairs.

To suspend redraw actions as a collection of SVG DOM changes occur, precede the changes to the SVG DOM with a method call similar to:

const suspendHandleID = suspendRedraw(maxWaitMilliseconds)

and follow the changes with a method call similar to:

unsuspendRedraw(suspendHandleID)

Note that multiple suspendRedraw() calls can be used at once, and that each such method call is treated independently of the other suspendRedraw() method calls.

SVGSVGElement.unsuspendRedraw()
Cancels a specified suspendRedraw() by providing a unique suspend handle ID that was returned by a previous suspendRedraw() call.
SVGSVGElement.unsuspendRedrawAll()
Cancels all currently active suspendRedraw() method calls. This method is most useful at the very end of a set of SVG DOM calls to ensure that all pending suspendRedraw() method calls have been cancelled.
SVGSVGElement.forceRedraw()
In rendering environments supporting interactivity, forces the user agent to immediately redraw all regions of the viewport that require updating.
SVGSVGElement.pauseAnimations()
Suspends (i.e., pauses) all currently running animations that are defined within the SVG document fragment corresponding to this <svg> element, causing the animation clock corresponding to this document fragment to stand still until it is unpaused.
SVGSVGElement.unpauseAnimations()
Unsuspends (i.e., unpauses) currently running animations that are defined within the SVG document fragment, causing the animation clock to continue from the time at which it was suspended.
SVGSVGElement.animationsPaused()
Returns true if this SVG document fragment is in a paused state.
SVGSVGElement.getCurrentTime()
Returns the current time in seconds relative to the start time for the current SVG document fragment. If getCurrentTime() is called before the document timeline has begun (for example, by script running in a <script> element before the document's SVGLoad event is dispatched), then 0 is returned.
SVGSVGElement.setCurrentTime()
Adjusts the clock for this SVG document fragment, establishing a new current time. If setCurrentTime() is called before the document timeline has begun (for example, by script running in a <script> element before the document's SVGLoad event is dispatched), then the value of seconds in the last invocation of the method gives the time that the document will seek to once the document timeline has begun.
SVGSVGElement.getIntersectionList()
Returns a NodeList of graphics elements whose rendered content intersects the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in pointer-events processing.
SVGSVGElement.getEnclosureList()
Returns a NodeList of graphics elements whose rendered content is entirely contained within the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in pointer-events processing.
SVGSVGElement.checkIntersection()
Returns true if the rendered content of the given element intersects the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in pointer-events processing.
SVGSVGElement.checkEnclosure()
Returns true if the rendered content of the given element is entirely contained within the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in pointer-events processing.
SVGSVGElement.deselectAll()
Unselects any selected objects, including any selections of text strings and type-in bars.
SVGSVGElement.createSVGNumber()
Creates an SVGNumber object outside of any document trees. The object is initialized to 0.
SVGSVGElement.createSVGLength()
Creates an SVGLength object outside of any document trees. The object is initialized to 0 user units.
SVGSVGElement.createSVGAngle()
Creates an SVGAngle object outside of any document trees. The object is initialized to a value of 0 degrees (unitless).
SVGSVGElement.createSVGPoint()
Creates an SVGPoint object outside of any document trees. The object is initialized to the point (0,0) in the user coordinate system.
SVGSVGElement.createSVGMatrix()
Creates an SVGMatrix object outside of any document trees. The object is initialized to the identity matrix.
SVGSVGElement.createSVGRect()
Creates an SVGRect object outside of any document trees. The object is initialized such that all values are set to 0 user units.
SVGSVGElement.createSVGTransform()
Creates an SVGTransform object outside of any document trees. The object is initialized to an identity matrix transform (SVG_TRANSFORM_MATRIX).
SVGSVGElement.createSVGTransformFromMatrix()
Creates an SVGTransform object outside of any document trees. The object is initialized to the given matrix transform (i.e., SVG_TRANSFORM_MATRIX). The values from the parameter matrix are copied, the matrix parameter is not adopted as SVGTransform::matrix.
SVGSVGElement.getElementById()
Searches this SVG document fragment (i.e., the search is restricted to a subset of the document tree) for an Element whose id is given by elementId. If an Element is found, that Element is returned. If no such element exists, returns null. Behavior is not defined if more than one element has this id.

Specifications

Specification Status Comment
Scalable Vector Graphics (SVG) 2
The definition of 'SVGSVGElement' in that specification.
Candidate Recommendation Replaced the inheritance from SVGElement by SVGGraphicsElement, removed the implemented interfaces SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGLocatable, DocumentEvent, ViewCSS, and DocumentCSS and added implemented interface WindowEventHandlers.
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
The definition of 'SVGSVGElement' in that specification.
Recommendation Initial definition

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
SVGSVGElementChrome Full support YesEdge Full support 12Firefox Full support YesIE Full support 9Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
animationsPausedChrome ? Edge ? Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
checkEnclosureChrome Full support YesEdge Full support 12Firefox No support NoIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android No support NoOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
checkIntersectionChrome Full support YesEdge Full support 12Firefox No support NoIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android No support NoOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
contentScriptTypeChrome ? Edge Full support 12Firefox No support ? — 20IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
contentStyleTypeChrome ? Edge Full support 12Firefox No support ? — 20IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
createSVGAngleChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
createSVGLengthChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
createSVGMatrixChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
createSVGNumberChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
createSVGPointChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
createSVGRectChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
createSVGTransformChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
createSVGTransformFromMatrixChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
currentScaleChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
currentTranslateChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
currentViewChrome No support ? — 56Edge No support NoFirefox Full support YesIE ? Opera No support ? — 43Safari ? WebView Android No support ? — 56Chrome Android No support ? — 56Firefox Android Full support YesOpera Android No support ? — 43Safari iOS ? Samsung Internet Android No support ? — 6.0
deselectAllChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
forceRedraw
Deprecated
Chrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
getCurrentTimeChrome ? Edge Full support 12Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
getElementByIdChrome Full support YesEdge Full support 12Firefox Full support 11IE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
getEnclosureListChrome Full support YesEdge Full support 12Firefox No support NoIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android No support NoOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
getIntersectionListChrome Full support YesEdge Full support 12Firefox No support NoIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android No support NoOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
heightChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
pauseAnimationsChrome ? Edge Full support 12Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
pixelUnitToMillimeterX
Deprecated
Chrome No support ? — 47Edge No support 12 — 79Firefox No support ? — 61IE ? Opera No support ? — 33Safari ? WebView Android No support ? — 47Chrome Android No support ? — 47Firefox Android No support ? — 61Opera Android No support ? — 33Safari iOS ? Samsung Internet Android No support ? — 5.0
pixelUnitToMillimeterY
Deprecated
Chrome No support ? — 47Edge No support 12 — 79Firefox No support ? — 61IE ? Opera No support ? — 33Safari ? WebView Android No support ? — 47Chrome Android No support ? — 47Firefox Android No support ? — 61Opera Android No support ? — 33Safari iOS ? Samsung Internet Android No support ? — 5.0
screenPixelToMillimeterX
Deprecated
Chrome No support ? — 47Edge No support 12 — 79Firefox No support ? — 61IE ? Opera No support ? — 33Safari ? WebView Android No support ? — 47Chrome Android No support ? — 47Firefox Android No support ? — 61Opera Android No support ? — 33Safari iOS ? Samsung Internet Android No support ? — 5.0
screenPixelToMillimeterY
Deprecated
Chrome No support ? — 47Edge No support 12 — 79Firefox No support ? — 61IE ? Opera No support ? — 33Safari ? WebView Android No support ? — 47Chrome Android No support ? — 47Firefox Android No support ? — 61Opera Android No support ? — 33Safari iOS ? Samsung Internet Android No support ? — 5.0
setCurrentTimeChrome ? Edge Full support 12Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
suspendRedraw
Deprecated
Chrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
unpauseAnimationsChrome ? Edge Full support 12Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
unsuspendRedraw
Deprecated
Chrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
unsuspendRedrawAll
Deprecated
Chrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
useCurrentViewChrome No support ? — 56Edge No support NoFirefox Full support 15IE ? Opera No support ? — 43Safari ? WebView Android No support ? — 56Chrome Android No support ? — 56Firefox Android Full support 15Opera Android No support ? — 43Safari iOS ? Samsung Internet Android No support ? — 6.0
viewportChrome ? Edge Full support 12Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
widthChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
xChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
yChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support
Full support
No support
No support
Compatibility unknown
Compatibility unknown
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

See also