| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
| "http://www.w3.org/TR/html4/loose.dtd"> |
| |
| <html lang="en"> |
| <head> |
| <title>Test hit testing of -webkit-transform property while animating</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <style> |
| #target { |
| position: absolute; |
| left: 0px; |
| height: 200px; |
| width: 200px; |
| background-color: red; |
| -webkit-animation-duration: 4s; |
| -webkit-animation-timing-function: linear; |
| } |
| @-webkit-keyframes "anim" { |
| from { -webkit-transform: translate(100px); } |
| to { -webkit-transform: translate(300px); } |
| } |
| |
| .dot { |
| width: 10px; |
| height: 10px; |
| top: 100px; |
| background-color: yellow; |
| position:absolute; |
| } |
| </style> |
| <script type="text/javascript" charset="utf-8"> |
| function checkResult(pos, isIn) |
| { |
| var elt = document.elementFromPoint(pos, 150); |
| var good = isIn ? "inside" : "outside"; |
| var bad = isIn ? "outside" : "inside"; |
| return (isIn == (elt.id == "target")) ? |
| "<span style='color:green'>PASS</span> - " + pos + "px was " + good + " as it should be" + "<br>" : |
| "<span style='color:red'>FAIL</span> - " + pos + "px was " + bad + " and should have been " + good + "<br>"; |
| } |
| |
| function checkResults() |
| { |
| // Test before (150), in (300) and after (450) |
| var result = ""; |
| result += checkResult(150, false); |
| result += checkResult(300, true); |
| result += checkResult(450, false); |
| document.getElementById('result').innerHTML = result; |
| } |
| |
| function doTest() |
| { |
| if (window.layoutTestController) { |
| if (!layoutTestController.pauseAnimationAtTimeOnElementWithId("anim", 2.0, "target")) |
| throw("Transition is not running"); |
| |
| checkResults(); |
| layoutTestController.notifyDone(); |
| } |
| else { |
| window.setTimeout("checkResults()", 2000); |
| } |
| } |
| |
| function startTest() |
| { |
| if (window.layoutTestController) { |
| layoutTestController.dumpAsText(); |
| layoutTestController.waitUntilDone(); |
| } |
| |
| document.getElementById("target").style.webkitAnimationName = "anim"; |
| window.setTimeout(doTest, 0); |
| } |
| </script> |
| </head> |
| <body onload="startTest()"> |
| <div> |
| This test starts an animation of the '-webkit-transform' property and then does elementFromPoint calls |
| at the shown yellow dots to see if hit testing works |
| </div> |
| <div id="target"></div> |
| <div class="dot" style="left:150px"></div> |
| <div class="dot" style="left:300px"></div> |
| <div class="dot" style="left:450px"></div> |
| <div id="result" style="position:absolute; top:250px"></div> |
| </body> |
| </html> |