<html>
<head>
<title>Point mapping through 3D transforms with origins</title>
<script src="point-mapping-helpers.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
function test()
{
// Scroll so that frame view offsets are non-zero
// window.scrollTo(20, 100);
// document.getElementById('overflow').scrollLeft = 80;
// document.getElementById('overflow').scrollTop = 60;
// In non-test mode, show the mouse coords for testing
if (!window.testRunner)
document.body.addEventListener('mousemove', mousemoved, false);
dispatchEvent(48, 48, 'box1', 5, 5);
dispatchEvent(70, 41, 'box2', 2, 2);
dispatchEvent(185, 164, 'box2', 96, 96);
dispatchEvent(338, 64, 'box7', 2, 2);
dispatchEvent(92, 310, 'box10', 2, 2);
dispatchEvent(217, 444, 'box10', 95, 95);
dispatchEvent(337, 309, 'box13', 1, 1);
dispatchEvent(360, 334, 'box14', 1, 1);
dispatchEvent(500, 484, 'box14', 95, 95);
}
</script>
<style type="text/css" media="screen">
body {
margin: 0;
border: 1px solid black;
cursor: crosshair;
}
.test {
display: inline-block;
height: 200px;
width: 200px;
border: 1px solid black;
margin: 20px;
}
.box {
height: 100px;
width: 100px;
-webkit-box-sizing: border-box;
background-color: #DDD;
border: 1px solid black;
}
.box:hover {
outline: 3px solid orange;
}
.container {
height: 140px;
width: 140px;
margin: 20px;
border: 1px solid black;
-webkit-box-sizing: border-box;
-webkit-perspective: 400;
-webkit-perspective-origin: 20% 80%;
}
.transformed {
position: relative;
height: 100px;
width: 100px;
padding: 20px;
margin: 20px;
border: 1px solid black;
background-color: #AAA;
-webkit-box-sizing: border-box;
transform: translateZ(100px) rotateY(-40deg);
-webkit-transform-origin: 20% 40%;
}
.layer {
padding: 20px;
background-color: #C0D69E;
}
.inner {
background-color: blue;
}
#results {
position: absolute;
left: 30px;
top: 500px;
}
#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>
</div>
</div>
<div class="test">
<!-- Transformed div in perpsective with non-layer child -->
<div class="container box" id="box5">
<div class="transformed box" id="box6">
<div class="inner box" id="box7">
</div>
</div>
</div>
</div>
<br>
<div class="test">
<!-- Transformed div in perpsective with layer child -->
<div class="container box" id="box8">
<div class="transformed box" id="box9">
<div class="inner box" style="position: relative" id="box10">
</div>
</div>
</div>
</div>
<div class="test">
<!-- Transformed div in perpsective with child having layer child -->
<div class="container box" id="box11">
<div class="transformed box" id="box12">
<div class="layer box" id="box13">
<div class="inner box" style="position: relative" id="box14">
</div>
</div>
</div>
</div>
</div>
<div id="mousepos"></div>
</body>
</html>