Index: tools/perf/page_sets/perf_week/css-transitions-simultaneous-by-inserting-new-elements.html |
diff --git a/tools/perf/page_sets/perf_week/css-transitions-simultaneous-by-inserting-new-elements.html b/tools/perf/page_sets/perf_week/css-transitions-simultaneous-by-inserting-new-elements.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..05e97aa47b9b506e5cb8ee6cad749c1c484b6e17 |
--- /dev/null |
+++ b/tools/perf/page_sets/perf_week/css-transitions-simultaneous-by-inserting-new-elements.html |
@@ -0,0 +1,65 @@ |
+<!doctype html> |
+<meta name="viewport" content="width=device-width, user-scalable=no"> |
+<container id="container"></container> |
+<script> |
+var N = 1000; |
+var duration = 1000; |
+var targets = []; |
+var triggers = []; |
+ |
+for (var i = 0; i < N; i++) { |
+ triggers.push(document.createElement('trigger')); |
+ var target = document.createElement('target'); |
+ container.appendChild(target); |
+ targets.push(target); |
+} |
+ |
+function startAllTransitions() { |
+ requestAnimationFrame(function() { |
+ targets.forEach(function(target, i) { |
+ container.insertBefore(triggers[i], target); |
+ }); |
+ requestAnimationFrame(function() { |
+ triggers.forEach(function(trigger) { |
+ trigger.remove(); |
+ }) |
+ }); |
+ }); |
+} |
+ |
+startAllTransitions(); |
+setInterval(startAllTransitions, duration); |
+ |
+requestAnimationFrame(function() { |
+ window.measurementReady = true; |
+}); |
+</script> |
+ |
+<style> |
+body { |
+ margin: 0; |
+ overflow: hidden; |
+} |
+container { |
+ display: flex; |
+ flex-flow: row wrap; |
+ width: 550px; |
+ height: 800px; |
+ background: lightgoldenrodyellow; |
+} |
+ |
+target { |
+ display: inline-block; |
+ width: 9px; height: 9px; |
+ background: magenta; |
+ transition: opacity 1000ms linear; |
+ opacity: 0; |
+} |
+trigger + target { |
+ transition: none; |
+ opacity: 1; |
+} |
+trigger { |
+ display: none; |
+} |
+</style> |