| <!DOCTYPE html> |
| <html> |
| <head> |
| <style> |
| body { |
| height: 2000px; |
| width: 2000px; |
| } |
| |
| .fixed { |
| position: fixed; |
| top: 250px; |
| left: 40px; |
| height: 200px; |
| width: 200px; |
| border: 1px solid black; |
| } |
| |
| #scroller { |
| height: 100%; |
| width: 100%; |
| overflow: scroll; |
| } |
| |
| #scroller > a { |
| display: block; |
| height: 50px; |
| margin-top: 600px; |
| } |
| </style> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script> |
| description("Tests scrolling to an anchor inside overflow:scroll inside position:fixed correctly scrolls the overflow, and not the page"); |
| window.jsTestIsAsync = true; |
| |
| function runTest() |
| { |
| window.scrollTo(100, 800); |
| setTimeout(function() { |
| window.location='#anchor'; |
| setTimeout(finishTest, 0); |
| }, 0); |
| } |
| |
| var scroller; |
| function finishTest() |
| { |
| if (window.location.toString().indexOf("#") == -1) { |
| setTimeout(finishTest, 0); |
| return; |
| } |
| |
| scroller = document.getElementById('scroller'); |
| |
| shouldBe('scroller.scrollTop', '465'); |
| shouldBe('scroller.scrollLeft', '0'); |
| |
| shouldBe('document.scrollingElement.scrollTop', '800'); |
| shouldBe('document.scrollingElement.scrollLeft', '100'); |
| |
| window.scrollTo(0, 0); |
| finishJSTest(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| |
| <div class="fixed"> |
| <div id="scroller"> |
| <a name="anchor">Anchor is here</a> |
| </div> |
| </div> |
| |
| <script src="../../resources/js-test-post.js"></script> |
| |
| </body></html> |