4 <title>Test for DOM MouseEvent offsetX/Y
</title>
5 <script src=
"/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css"/>
10 <div id=
"content" style=
"display: none">
13 <div id=
"d" style=
"position:absolute; top:100px; left:100px; width:100px; border:5px dotted black; height:100px"></div>
14 <div id=
"d2" style=
"position:absolute; top:100px; left:100px; width:100px; border:5px dotted black; height:100px; transform:translateX(100px)"></div>
15 <div id=
"d3" style=
"display:none; position:absolute; top:100px; left:100px; width:100px; border:5px dotted black; height:100px"></div>
16 <div id=
"d4" style=
"transform:scale(0); position:absolute; top:100px; left:100px; width:100px; border:5px dotted black; height:100px"></div>
19 <script type=
"application/javascript">
21 var offsetX = -
1, offsetY = -
1;
22 var ev = new MouseEvent(
"click", {clientX:
110, clientY:
110});
25 is(ev.offsetX, ev.pageX);
26 is(ev.offsetY, ev.pageY);
27 d.addEventListener(
"click", function (event) {
28 is(ev, event,
"Event objects must match");
29 offsetX = event.offsetX;
30 offsetY = event.offsetY;
38 var ev2 = new MouseEvent(
"click", {clientX:
220, clientY:
130});
41 is(ev2.offsetX, ev2.pageX);
42 is(ev2.offsetY, ev2.pageY);
43 d2.addEventListener(
"click", function (event) {
44 is(ev2, event,
"Event objects must match");
45 offsetX = event.offsetX;
46 offsetY = event.offsetY;
48 d2.dispatchEvent(ev2);
54 var ev3 = new MouseEvent(
"click", {clientX:
110, clientY:
110});
57 is(ev3.offsetX, ev3.pageX);
58 is(ev3.offsetY, ev3.pageY);
59 d3.addEventListener(
"click", function (event) {
60 is(ev3, event,
"Event objects must match");
61 offsetX = event.offsetX;
62 offsetY = event.offsetY;
64 d3.dispatchEvent(ev3);
70 var ev4 = new MouseEvent(
"click", {clientX:
110, clientY:
110});
73 is(ev4.offsetX, ev4.pageX);
74 is(ev4.offsetY, ev4.pageY);
75 d4.addEventListener(
"click", function (event) {
76 is(ev4, event,
"Event objects must match");
77 offsetX = event.offsetX;
78 offsetY = event.offsetY;
80 d4.dispatchEvent(ev4);
86 // Now redispatch ev4 to
"d" to make sure that its offsetX gets updated
87 // relative to the new target. Have to set
"ev" to
"ev4", because the listener
88 // on
"d" expects to see
"ev" as the event.