| <!DOCTYPE html> |
| <html> |
| <head> |
| </head> |
| <script> |
| |
| function setWindowRect(win, clientRect, fromWindow) { |
| if (win) { |
| var desktopLeft = fromWindow.screenLeft - fromWindow.screen.availLeft; |
| var desktopTop = fromWindow.screenTop - fromWindow.screen.availTop; |
| |
| win.moveTo(clientRect.left + desktopLeft, clientRect.top + desktopTop); |
| win.resizeTo(clientRect.width, clientRect.height); |
| } |
| } |
| |
| function createEqual(div, fromWindow) { |
| win = window.open("about:blank", "", "location=no, resizable=no, scrollbars=no, status=no, titlebar=no, toolbar=no, left=0, top=0, width=1, height=1"); |
| win.document.write("<style>body { margin: 0 }</style><body></body>"); |
| win.document.getElementsByTagName('body')[0].innerHTML = div.outerHTML; |
| setWindowRect(win, div.getClientRects()[0], fromWindow); |
| return win; |
| } |
| |
| var window1; |
| var window2; |
| |
| function runTests() { |
| var div1 = document.getElementsByTagName('div')[1]; |
| var div2 = document.getElementsByTagName('div')[2]; |
| |
| window1 = createEqual(div1, window); |
| window2 = createEqual(div2, window); |
| |
| window.onscroll = function() { |
| setWindowRect(window1, div1.getClientRects()[0], window); |
| setWindowRect(window2, div2.getClientRects()[0], window); |
| } |
| |
| start = Date.now(); |
| sign = 1; |
| |
| function step(timestamp) { |
| var progress = timestamp - start; |
| var before = document.body.scrollTop; |
| window.scrollBy(0, 10 * sign); |
| if (before == document.body.scrollTop) { |
| sign = sign * -1; |
| } |
| |
| requestAnimationFrame(step); |
| } |
| scrollTo(0, 0); |
| requestAnimationFrame(step); |
| } |
| |
| function endTests() { |
| window1.close(); |
| window2.close(); |
| } |
| </script> |
| <body onload="runTests()" onunload="endTests()"> |
| <div style="height: 1000px"></div> |
| <div style="background-color: red; width: 400px; height: 100px;"></div> |
| <br> |
| <div style="background-color: blue; width: 200px; height: 200px; float: right"></div> |
| <div style="height: 1000px"></div> |
| </body> |
| </html> |