Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / repaint / position-change-keeping-geometry.html
blobf65a25e76d06566eb76d1cf740be1eb3a26026bf
1 <!DOCTYPE html>
2 <script src="resources/text-based-repaint.js"></script>
3 <script>
4 function changePositionKeepingGeometry(id, newPosition) {
5 var target = document.getElementById(id);
6 var originalTop = target.offsetTop;
7 var originalLeft = target.offsetLeft;
8 target.style.position = newPosition;
9 target.style.top = originalTop + 'px';
10 target.style.left = originalLeft + 'px';
13 function repaintTest()
15 changePositionKeepingGeometry('target1', 'absolute');
16 changePositionKeepingGeometry('target2', 'absolute');
17 changePositionKeepingGeometry('target3', 'fixed');
19 onload = runRepaintTest;
20 </script>
21 <style>
22 body {
23 margin: 0;
25 div {
26 width: 100px;
27 height: 100px;
28 top: 20px;
29 background-color: blue;
31 #target0 {
32 left: 20px;
33 position: relative;
35 #target1 {
36 left: 20px;
37 position: relative;
39 #target2 {
40 left: 220px;
41 position: fixed;
42 z-index: 0;
44 #target3 {
45 left: 420px;
46 position: absolute;
47 z-index: 0;
49 </style>
50 There should be no invalildations on change of position without actual change of position and size.
51 <!-- target0 ensures we don't strip anonymous wrappers (and trigger a layout) when the other elements change position. -->
52 <div id="target0"></div>
53 <div id="target1"></div>
54 <div id="target2"></div>
55 <div id="target3"></div>