dialog-polyfill/tests/dialog-recentering.html

66 строки
1.5 KiB
HTML

<!DOCTYPE html>
<html>
<meta charset='utf-8'>
<head>
<script src="../dist/dialog-polyfill.js"></script>
<link rel="stylesheet" type="text/css" href="../dist/dialog-polyfill.css">
<style>
body {
height: 10000px;
}
dialog {
width: 100px;
}
#console {
position: fixed;
}
#ruler {
position: absolute;
left: 0;
width: 100%;
}
</style>
</head>
<body>
<p>Test that dialog is recentered if reopened. The test passes if you see a
box in the center of the screen.</p>
<div id="ruler"></div>
<div id="console"></div>
<dialog></dialog>
<script>
function writeToConsole(s) {
var console = document.getElementById('console');
var span = document.createElement('span');
span.textContent = s;
console.appendChild(span);
console.appendChild(document.createElement('br'));
}
function windowWidthMinusScrollbar() {
return document.getElementById('ruler').offsetWidth;
}
function checkCentered(dialog) {
var expectedTop = (window.innerHeight - dialog.offsetHeight) / 2;
var expectedLeft = (windowWidthMinusScrollbar() - dialog.offsetWidth) / 2;
var rect = dialog.getBoundingClientRect();
if (rect.top == expectedTop && rect.left == expectedLeft) {
writeToConsole('SUCCESS');
} else {
writeToConsole('FAIL: expected dialog top,left to be ' +
expectedTop + ',' + expectedLeft + ' and was actually ' +
rect.top + ',' + rect.left);
}
}
var dialog = document.querySelector('dialog');
dialogPolyfill.registerDialog(dialog);
dialog.show();
dialog.close();
window.scrollTo(0, 500);
dialog.show();
checkCentered(dialog);
</script>
</body>
</html>