| <!DOCTYPE HTML> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="resources/elementsFromPoint.js"></script> | |
| <style> | |
| html, body { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| height: 500px; | |
| } | |
| #simpleDiv { | |
| width: 200px; | |
| height: 200px; | |
| background-color: rgba(0,0,255,0.5); | |
| } | |
| #divWithPseudo { | |
| position: absolute; | |
| left: 50px; | |
| top: 50px; | |
| width: 100px; | |
| height: 100px; | |
| background-color: rgba(255,0,0,0.5); | |
| } | |
| #divWithPseudo::before { | |
| position: absolute; | |
| left: 20px; | |
| top: 20px; | |
| width: 100px; | |
| height: 100px; | |
| content: "::before"; | |
| background-color: rgba(255,0,0,0.5); | |
| z-index: 9999; | |
| } | |
| #divBetweenPseudo { | |
| position: absolute; | |
| left: 100px; | |
| top: 100px; | |
| width: 100px; | |
| height: 100px; | |
| background-color: rgba(0,255,0,0.5); | |
| } | |
| #withMargin { | |
| margin-top: -15px; | |
| width: 200px; | |
| height: 200px; | |
| background-color: rgba(0,0,0,0.5); | |
| } | |
| #inlineSpan { | |
| float: right; | |
| background-color: yellow; | |
| width: 100px; | |
| height: 1em; | |
| } | |
| #noPointerEvents { | |
| position: absolute; | |
| left: 50px; | |
| top: 50px; | |
| width: 100px; | |
| height: 300px; | |
| background-color: rgba(0,0,0,0.1); | |
| pointer-events: none; | |
| } | |
| #threeD { | |
| position: absolute; | |
| transform: translate3d(-100px, -100px, 10px); | |
| left: 140px; | |
| top: 140px; | |
| width: 200px; | |
| height: 50px; | |
| background-color: rgba(255,255,255,0.5); | |
| } | |
| </style> | |
| <div id="simpleDiv"></div> | |
| <div id="divWithPseudo"></div> | |
| <div id="divBetweenPseudo"></div> | |
| <div id="withMargin"><span id="inlineSpan"></span></div> | |
| <div id="noPointerEvents"></div> | |
| <div id="threeD"></div> | |
| <script> | |
| var body = document.body; | |
| var html = document.documentElement; | |
| test(function() { | |
| checkElementsFromPointFourCorners('document', 'simpleDiv', | |
| [simpleDiv, body, html], | |
| [simpleDiv, body, html], | |
| [withMargin, simpleDiv, body, html], | |
| [divBetweenPseudo, inlineSpan, withMargin, simpleDiv, body, html]); | |
| }, "elementsFromPoint for each corner of a simple div"); | |
| test(function() { | |
| checkElementsFromPointFourCorners('document', 'divWithPseudo', | |
| [threeD, divWithPseudo, simpleDiv, body, html], | |
| [threeD, divWithPseudo, simpleDiv, body, html], | |
| [divWithPseudo, simpleDiv, body, html], | |
| [divWithPseudo, divBetweenPseudo, divWithPseudo, simpleDiv, body, html]); | |
| }, "elementsFromPoint for each corner of a div that has a pseudo-element"); | |
| test(function() { | |
| checkElementsFromPointFourCorners('document', 'divBetweenPseudo', | |
| [divWithPseudo, divBetweenPseudo, divWithPseudo, simpleDiv, body, html], | |
| [divBetweenPseudo, simpleDiv, body, html], | |
| [divBetweenPseudo, inlineSpan, withMargin, simpleDiv, body, html], | |
| [divBetweenPseudo, inlineSpan, withMargin, simpleDiv, body, html]); | |
| }, "elementsFromPoint for each corner of a div that is between another div and its pseudo-element"); | |
| test(function() { | |
| checkElementsFromPointFourCorners('document', 'withMargin', | |
| [withMargin, simpleDiv, body, html], | |
| [divBetweenPseudo, inlineSpan, withMargin, simpleDiv, body, html], | |
| [withMargin, body, html], | |
| [withMargin, body, html]); | |
| }, "elementsFromPoint for each corner of a div that has a margin"); | |
| test(function() { | |
| checkElementsFromPointFourCorners('document', 'noPointerEvents', | |
| [threeD, divWithPseudo, simpleDiv, body, html], | |
| [threeD, divWithPseudo, simpleDiv, body, html], | |
| [withMargin, body, html], | |
| [withMargin, body, html]); | |
| }, "elementsFromPoint for each corner of a div with pointer-events:none"); | |
| test(function() { | |
| checkElementsFromPointFourCorners('document', 'threeD', | |
| [threeD, simpleDiv, body, html], | |
| [threeD, body, html], | |
| [threeD, simpleDiv, body, html], | |
| [threeD, body, html]); | |
| }, "elementsFromPoint for each corner of a div with a 3d transform"); | |
| </script> |