DocumentOrShadowRoot.elementsFromPoint()

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The elementsFromPoint() property of the DocumentOrShadowRoot interface returns an array of all elements at the specified coordinates (relative to the viewport).

Syntax

var elements = document.elementsFromPoint(x, y);

Parameters

x
The horizontal coordinate of a point.
y
The vertical coordinate of a point.

Returns

An array of element objects.

Example

HTML Content

<div>
  <p>Some text</p>
</div>
<p>Elements at point 30, 20:</p>
<div id="output"></div>

JavaScript Content

var output = document.getElementById("output");
if (document.elementsFromPoint) {
  var elements = document.elementsFromPoint(30, 20);
  for(var i = 0; i < elements.length; i++) {
    output.textContent += elements[i].localName;
    if (i < elements.length - 1) {
      output.textContent += " < ";
    }
  }
} else {
  output.innerHTML = "<span style=\"color: red;\">" +
     "Browser does not support <code>document.elementsFromPoint()</code>" +
     "</span>";
}

Specifications

Specification Status Comment
Shadow DOM
The definition of 'DocumentOrShadowRoot' in that specification.
Obsolete Initial definition.
CSS Object Model (CSSOM) View Module
The definition of 'Document' in that specification.
Working Draft Specifies paint order.

Browser Compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
elementsFromPoint
Experimental
Chrome Full support 53
Notes
Full support 53
Notes
Notes Before Chrome 66, this method returned null when the element was a child of a host node. See issue 759947.
Edge Full support YesFirefox Full support 63IE Full support YesOpera Full support 40Safari Full support YesWebView Android Full support 53
Notes
Full support 53
Notes
Notes Before WebView 66, this method returned null when the element was a child of a host node. See issue 759947.
Chrome Android Full support 53
Notes
Full support 53
Notes
Notes Before Chrome 66, this method returned null when the element was a child of a host node. See issue 759947.
Edge Mobile Full support YesFirefox Android Full support 63Opera Android Full support 40Safari iOS Full support YesSamsung Internet Android Full support 6.0

Legend

Full support  
Full support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.

See Also