blob: c1ba82122949ca020ab1ba522c9530c6c9d36e58 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>layout zoom test</title>
<style>
#test {
width: 500px;
height: 1500px;
background: skyblue;
}
#test > div {
background: navy;
height: 15px;
}
</style>
</head>
<body>
<div id="test"></div>
<div id="console">
The box above should be navy blue with no banding effects.<br>
</div>
</body>
<script>
var testElement = document.getElementById('test');
var consoleElement = document.getElementById('console');
function init()
{
testElement.innerHTML = '';
for (var i = 0; i < 100; i++)
testElement.appendChild(document.createElement('div'));
}
function test(zoom)
{
testElement.style.zoom = zoom + '%';
var lastElementBottom = testElement.lastChild.getBoundingClientRect().bottom;
var containerBottom = testElement.getBoundingClientRect().bottom;
var tolerance = Math.ceil(1 / (zoom / 100));
if (Math.abs(lastElementBottom - containerBottom) <= tolerance)
log('PASS: With zoom of ' + zoom + '% bottom edge of last child lines up with bottom edge of container.');
else
log('FAIL: With zoom of ' + zoom + '% bottom edge of last child at ' + lastElementBottom + ', container at ' + containerBottom + '.');
}
function log(str)
{
consoleElement.appendChild(document.createTextNode(str));
consoleElement.appendChild(document.createElement('br'));
}
init();
test(100);
test(110);
test(125);
test(133);
test(150);
test(166);
test(175);
test(200);
test(250);
test(300);
test(400);
test(500);
test(750);
test(1000);
test(90);
test(80);
test(75);
test(66);
test(50);
test(33);
test(25);
test(10);
test(5);
</script>
</html>