<!DOCTYPE html>
<meta name="viewport" content="width=device-width, user-scalable=no">
<link rel="stylesheet" type="text/css" href="resources/tablet.css">
<script src="resources/perf_test_helper.js"></script>
<container id="container"></container>
<script>
var N = PerfTestHelper.getN(500);
var duration = 1000;
function startAnimation() {
var target = document.createElement('target');
container.appendChild(target);
updateStyle(target);
target.addEventListener('animationend', function(e) {
updateStyle(target);
});
}
var nextId = 0;
var nextAnim = 0;
function updateStyle(element) {
if (!element.id) {
element.id = 'e' + nextId++;
}
if (element.styleSheet) {
element.styleSheet.remove();
}
var id = element.id;
var anim = id + 'anim' + nextAnim++;
var style = document.createElement('style');
style.textContent = '\
#' + id + ' {\
animation: ' + anim + ' 1s;\
}\n\
@keyframes ' + anim + ' {\
0% { opacity: 0; }\
100% { opacity: 1; }\
}';
container.appendChild(style);
element.styleSheet = style;
}
requestAnimationFrame(function(t) {
var base = t;
var i = 0;
function staggeredStart(t) {
elapsed = t - base;
for (; i < N * elapsed / duration; i++) {
startAnimation();
}
if (i < N) {
requestAnimationFrame(staggeredStart);
} else {
PerfTestHelper.signalReady();
}
}
requestAnimationFrame(staggeredStart);
});
</script>