chromium/tools/perf/page_sets/tough_animation_cases/web_animations_staggered_triggering.html

<!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>
<script src="resources/web_animations_api_check.js"></script>

<container id="container"></container>

<script>
var N = PerfTestHelper.getN(1000);
var duration = 1000;

var targets = [];
function startAnimation(i) {
  if (!targets[i]) {
    targets[i] = document.createElement('target');
    container.appendChild(targets[i]);
  }
  targets[i].animate([
    {opacity: 0},
    {opacity: 1},
  ], duration);
}

requestAnimationFrame(function(t) {
  var base = t;
  var i = 0;

  requestAnimationFrame(function staggeredStart(t) {
    var elapsed = t - base;
    for (; i < N && i < N * elapsed / duration; i++) {
      startAnimation(i);
    }
    if (elapsed > duration) {
      PerfTestHelper.signalReady();
      i = 0;
      base = t - (elapsed % duration);
      elapsed = 0;
    }
    requestAnimationFrame(staggeredStart);
  });
});
</script>