| <!doctype html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <title>CSS Regions: document.elementFromPoint() for elements in a region's hidden overflow</title> |
| <link rel="author" title="Mihai Balan" href="mailto:mibalan@adobe.com"> |
| <link rel="help" href="http://www.w3.org/TR/css3-regions/#the-flow-into-property"> |
| <link rel="help" href="http://www.w3.org/TR/css3-regions/#flow-from"> |
| <meta name="assert" content="For regions that have hidden overflow calling document.elementFromPoint() on the location of the element should not return the element"> |
| <meta name="flags" content="dom interact"> |
| <style> |
| p { |
| margin: 0; |
| } |
| input { |
| width: 100px; |
| } |
| #content { |
| font-family: monospace; |
| font-size: 20px; |
| line-height: 1em; |
| flow-into: f; |
| } |
| .spacer { |
| width: 100%; |
| height: 80px; |
| display: block; |
| } |
| .highlite { |
| color: deepskyblue; |
| display: inline-block; |
| height: 50px; |
| |
| } |
| #parent { |
| height: 200px; |
| } |
| #region { |
| border: 2px solid black; |
| background-color: lightgray; |
| width: 100px; |
| height: 100px; |
| flow-from: f; |
| overflow: hidden; |
| } |
| #region p { |
| background-color: red; |
| width: 100%; |
| height: 50%; |
| } |
| #result { |
| color: green; |
| font-weight: bold; |
| } |
| </style> |
| </head> |
| <body> |
| This tests that calling <code>document.elementFromPoint()</code> on an element displayed in a region's |
| hidden overflow will not return that element (but the element "underneath" it).<br> |
| You should see "PASS" being displayed below. |
| <div id="content"><span class="spacer"></span>This text has <span class="highlite">overflow</span></div> |
| <div id="result"> </div> |
| <div id="parent"> |
| <div id="region"> |
| <p></p> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| function runScript() { |
| var fromSelector, fromPoint, |
| parent = document.querySelector("#parent"); |
| boxLocation = document.querySelector("#region").getBoundingClientRect(), |
| result = document.querySelector("#result"); |
| |
| fromSelector = document.querySelector(".highlite"); |
| fromPoint = document.elementFromPoint(boxLocation.left + boxLocation.width/2, boxLocation.top + boxLocation.height + 35); |
| |
| if ((fromSelector != fromPoint) && (fromPoint == parent)) { |
| result.innerHTML = "PASS"; |
| } else { |
| result.innerHTML = "FAIL"; |
| result.style.color = "red"; |
| } |
| |
| if (window.testRunner) { |
| testRunner.notifyDone(); |
| } |
| } |
| |
| document.addEventListener("DOMContentLoaded", runScript); |
| </script> |
| </body> |
| </html> |