chromium/third_party/blink/web_tests/transforms/3d/point-mapping/3d-point-mapping-overlapping.html

<html>
<head>
  <title>Hit test overlapping 3d elements</title>
  <script src="point-mapping-helpers.js" type="text/javascript" charset="utf-8"></script>
  
  <script type="text/javascript" charset="utf-8">
    
    function test()
    {
      dispatchEvent(285, 50, 'box2', 197, 1);
      dispatchEvent(174, 108, 'box3', 50, 2);

      dispatchEvent(61, 50, 'overlay', 39, 28);
      dispatchEvent(119, 108, 'overlay', 97, 86);
    }
    
  </script>
  <style type="text/css" media="screen">
  
    body {
      margin: 0;
      border: 1px solid black;
      cursor: crosshair;
    }

    .test {
      display: inline-block;
      position: relative;
      height: 300px;
      width: 300px;
      border: 1px solid black;
      margin: 20px;
    }

    .box {
      height: 200px;
      width: 200px;
      -webkit-box-sizing: border-box;
      background-color: #DDD;
      border: 1px solid black;
    }

    .box:hover {
      outline: 3px solid orange;
    }
    
    .container {
      position: absolute;
      height: 260px;
      width: 260px;
      margin: 20px;
      border: 1px solid black;
      -webkit-box-sizing: border-box;
      -webkit-perspective: 400;
    }
    
    .transformed {
      position: absolute;
      top: 20px;
      left: 30px;
      height: 200px;
      width: 200px;
      border: 1px solid black;
      background-color: #AAA;
      -webkit-box-sizing: border-box;
      transform: translateZ(50px);
    }
    
    #overlay {
      position: absolute;
      height: 300px;
      width: 150px;
      background-color: rgba(0, 128, 0, 0.3);
      transform: translateZ(100px);
    }
    
    .inner {
      position: relative;
      background-color: blue;
      height: 100px;
      width: 100px;
      margin: 50px;
    }

    #results {
      position: absolute;
      left: 30px;
      top: 400px;
    }
    
    #mousepos {
      position: absolute;
      left: 30px;
      top: 700px;
      color: gray;
      font-size: smaller;
    }
  </style>
</head>
<body onclick="clicked(event)">

<div id="results"></div>
<div class="test">
  <!-- Simple transformed div in perpsective -->
  <div class="container box" id="box1">
    <div class="transformed box" id="box2">
      <div class="inner" id="box3"></div>
    </div>
  </div>
  <div id="overlay"></div>
</div>
<p>The green overlay is translated in Z by 100px, so should hit test in front relative to the blue box.</p>

<div id="mousepos"></div>

</body>
</html>