61 lines
1.6 KiB
HTML
61 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<style>
|
|
body {
|
|
width: 2000px;
|
|
height: 2000px;
|
|
}
|
|
button {
|
|
position: absolute;
|
|
width: 50px;
|
|
height: 50px;
|
|
}
|
|
#b1 {
|
|
left: 200px;
|
|
top: 100px;
|
|
}
|
|
#b2 {
|
|
left: 500px;
|
|
top: 400px;
|
|
}
|
|
</style>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body onload="runTest();" style="width:2000px;height:2000px;margin:0px;padding:100px">
|
|
<button id="b1"></button>
|
|
<button id="b2"></button>
|
|
<script>
|
|
function runTest() {
|
|
description("This test applies page scale and scrolls the page, and checks that elementFromPoint returns the correct element.");
|
|
if (window.internals) {
|
|
window.internals.settings.setClientCoordinatesRelativeToLayoutViewport(true);
|
|
window.internals.setPageScaleFactor(2, 0, 0);
|
|
}
|
|
window.scrollTo(100, 100);
|
|
|
|
// The layout viewport hasn't been scrolled.
|
|
shouldBe("document.elementFromPoint(225, 125)", "b1");
|
|
shouldBe("document.elementFromPoint(525, 425)", "b2");
|
|
|
|
window.scrollTo(200, 200);
|
|
|
|
// b1 is now offscreen, but still within the layout viewport.
|
|
shouldBe("document.elementFromPoint(225, 125)", "b1");
|
|
shouldBe("document.elementFromPoint(525, 425)", "b2");
|
|
|
|
window.scrollTo(500, 400);
|
|
shouldBe("document.elementFromPoint(115, 15)", "b1");
|
|
shouldBe("document.elementFromPoint(415, 315)", "b2");
|
|
|
|
window.scrollTo(700, 400);
|
|
shouldBeNull("document.elementFromPoint(-85, 15)");
|
|
shouldBe("document.elementFromPoint(215, 315)", "b2");
|
|
|
|
finishJSTest();
|
|
}
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|