Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: tools/perf/page_sets/tough_animation_cases/css_transitions_staggered_chaining_by_inserting_new_element.html

Issue 399393002: Add CSS Transitions performance tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Appease linter Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <meta name="viewport" content="width=device-width, user-scalable=no">
3 <link rel="stylesheet" type="text/css" href="resources/tablet.css">
4 <link rel="stylesheet" type="text/css" href="resources/transition.css">
5 <script src="resources/perftesthelper.js"></script>
6 <style>
7 keyframe0 + target {
8 opacity: 0;
9 }
10 keyframe1 + target {
11 opacity: 1;
12 }
13 keyframe0, keyframe1 {
14 display: none;
15 }
16 </style>
17
18 <container id="container"></container>
19
20 <script>
21 var N = PerfTestHelper.getN(1000);
22 var duration = 1000;
23 var keyframeValues = [0, 1];
24 var keyframeStash = [[], []];
25 var targets = [];
26
27 for (var i = 0; i < N; i++) {
28 keyframeStash[0].push(document.createElement('keyframe0'));
29 keyframeStash[1].push(document.createElement('keyframe1'));
30 var target = document.createElement('target');
31 target._keyframe = 0;
32 target.style.transitionDelay = (-i / N * duration) + 'ms';
33 container.appendChild(target);
34 target.addEventListener('transitionend', restartTransition);
35 targets.push(target);
36 }
37
38 function restartTransition(event) {
39 var target = event.target;
40 target.style.removeProperty('transition-delay');
41 keyframeStash[target._keyframe].push(target.previousSibling);
42 target.previousSibling.remove();
43 target._keyframe ^= 1;
44 container.insertBefore(keyframeStash[target._keyframe].pop(), target);
45 }
46
47 requestAnimationFrame(function() {
48 targets.forEach(function(target) {
49 container.insertBefore(keyframeStash[0].pop(), target);
50 });
51 });
52
53 PerfTestHelper.signalReady();
54 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698