- From: Justin Fagnani via GitHub <sysbot+gh@w3.org>
- Date: Fri, 07 Jun 2024 23:53:55 +0000
- To: public-css-archive@w3.org
justinfagnani has just created a new issue for https://github.com/w3c/csswg-drafts: == [cssom-view] Proposal: Document.elementsFromRect() == `elementsFromPoint()` allows us to utilize browser hit-testing to get all elements under a specific coordinate. This is great for things like interactive editors that use DOM elements as the editable objects. But such editors often have other kinds of selection gestures than just a single click that selects at a single coordinate. Often we'll have click-and-drag gestures for selecting all elements under a rectangular window. Some editors will have a lasso tool that lets users draw an irregular selection window. `elementsFromPoint()` is insufficient for these cases. ### Existing solutions There are two rough approaches I know of for finding all elements under a rect: 1. Call `elementsFromPoint()` repeatedly in a grid pattern. This uses the native hit-testing mechanism, but it can obviously miss elements that fall between the grid points. 2. Re-implement hit testing and crawl the entire DOM looking for intersecting elements. This is very difficult and prone to error. ### Proposal Add `elementsFromRect()` (and possibly `elementsFromPath()`) that return all elements intersecting the given rect, to Document and ShadowRoot. Relevant spec section? https://drafts.csswg.org/cssom-view/#extensions-to-the-document-interface Originally opened at: https://github.com/whatwg/dom/issues/1286 Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/10398 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Friday, 7 June 2024 23:53:55 UTC