<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#backdrop {
float: left;
width: 512px;
height: 512px;
isolation: isolate;
background-image: linear-gradient(to bottom,
rgba(255, 255, 0, 0.9),
rgba(255, 0, 0, 0.9),
rgba(0, 255, 0, 0.9),
rgba(0, 0, 255, 0.9),
rgba(0, 0, 0, 0.9));
position: absolute;
top: 100px;
left: 100px;
}
#backdrop div {
position: absolute;
width: 100%;
height: 100%;
border-radius: 2px;
transform-style: preserve-3d;
}
</style>
<script src="resources/perf_test_helper.js"></script>
<script type="text/javascript">
var N = PerfTestHelper.getN(200);
var duration = 2000;
function randomColorGenerator()
{
return '#' + Math.floor(Math.random()*16777215).toString(16);
}
function makeKeyframes() {
var keyframes = [];
var numKeyframes = 2;
for (var i = 0; i < numKeyframes + 1; i++) {
var fraction = i / numKeyframes;
var t = (fraction * 0.6) + 0.1;
keyframes.push({opacity: t});
}
return keyframes;
}
function startExperiment()
{
var keyframes = makeKeyframes();
for (var i = 0; i < N; i++) {
var elem = document.createElement("div");
elem.style.backgroundColor = randomColorGenerator();
elem.style.transform = "rotateZ(" + ((i + 1) * 10.1).toString() + "deg)";
backdrop.appendChild(elem);
elem.animate(keyframes, {duration: duration, iterations: Infinity,
direction: 'alternate', delay: -2 * duration * Math.random()});
}
PerfTestHelper.signalReady();
}
window.addEventListener('load', startExperiment, false);
</script>
</head>
<body>
<div id="backdrop"></div>
</body>
</html>