This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The elementsFromPoint()
method of the DocumentOrShadowRoot
interface returns an array of all elements at the specified coordinates (relative to the viewport).
It operates in a similar way to the elementFromPoint()
method.
Syntax
const elements = document.elementsFromPoint(x, y);
Parameters
x
- The horizontal coordinate of a point.
y
- The vertical coordinate of a point.
Return value
An array of element
objects.
Example
HTML
<div> <p>Some text</p> </div> <p>Elements at point 30, 20:</p> <div id="output"></div>
JavaScript
let output = document.getElementById("output"); if (document.elementsFromPoint) { let 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 |
---|---|
Shadow DOM The definition of 'elementsFromPoint()' in that specification. |
Obsolete |
CSS Object Model (CSSOM) View Module The definition of 'elementsFromPoint()' in that specification. |
Working Draft |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
elementsFromPoint | Chrome
Full support
53
| Edge
Full support
12
| Firefox Full support 63 | IE
Full support
10
| Opera Full support 40 | Safari Full support 12 | WebView Android
Full support
53
| Chrome Android
Full support
53
| Firefox Android Full support 63 | Opera Android Full support 41 | Safari iOS Full support 12 | Samsung 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.
- Uses a non-standard name.
- Uses a non-standard name.