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).


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


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


An array of element objects.


HTML Content

  <p>Some text</p>
<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>" +


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

Browser Compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support53 Yes Yes Yes40 Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support5353 Yes Yes40 Yes6.0

Document Tags and Contributors

Last updated by: progers,