The elementFromPoint()
method—available on both the Document
and ShadowRoot
objects—returns the topmost Element
at the specified coordinates (relative to the viewport).
If the element at the specified point belongs to another document (for example, the document of an <iframe>
), that document's parent element is returned (the <iframe>
itself). If the element at the given point is anonymous or XBL generated content, such as a textbox's scroll bars, then the first non-anonymous ancestor element (for example, the textbox) is returned.
Elements with pointer-events
set to none
will be ignored, and the element below it will be returned.
If the method is run on another document (like an <iframe>
's subdocument), the coordinates are relative to the document where the method is being called.
If the specified point is outside the visible bounds of the document or either coordinate is negative, the result is null
.
If you need to find the specific position inside the element, use Document.caretPositionFromPoint()
.
Syntax
const element = document.elementFromPoint(x, y)
Parameters
x
- The horizontal coordinate of a point, relative to the left edge of the current viewport.
y
- The vertical coordinate of a point, relative to the top edge of the current viewport.
Return value
The topmost Element
object located at the specified coordinates.
Example
This example creates two buttons which let you set the current color of the paragraph element located under the coordinates (2, 2)
.
JavaScript
function changeColor(newColor) {
elem = document.elementFromPoint(2, 2);
elem.style.color = newColor;
}
The changeColor()
method simply obtains the element located at the specified point, then sets that element's current foreground color
property to the color specified by the newColor
parameter.
HTML
<p id="para1">Some text here</p> <button onclick="changeColor('blue');">Blue</button> <button onclick="changeColor('red');">Red</button>
The HTML provides the paragraph whose color will be affected, as well as two buttons: one to change the color to blue, and another to change the color to red.
Result
Specifications
Specification | Status |
---|---|
Shadow DOMThe definition of 'elementsFromPoint()' in that specification. | Obsolete |
CSS Object Model (CSSOM) View ModuleThe 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.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome Full support 53 Full support 53 Notes' Before Chrome 66, this method returned |
Edge
Full support 12 |
Firefox
Full support 63 |
IE
Full support Yes |
Opera
Full support 40 |
Safari
Full support Yes |
WebView Android Full support 53 Full support 53 Notes' Before WebView 66, this method returned |
Chrome Android Full support 53 Full support 53 Notes' Before Chrome 66, this method returned |
Firefox Android
Full support 63 |
Opera Android
Full support 41 |
Safari iOS
Full support Yes |
Samsung Internet Android Full support 6.0 Full support 6.0 Notes' Before Samsung Internet 9.0, this method returned |
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
DocumentOrShadowRoot.elementFromPoint() by Mozilla Contributors is licensed under CC-BY-SA 2.5.