| Index: tools/perf/page_sets/key_power_cases/css-animation.html
|
| diff --git a/tools/perf/page_sets/key_power_cases/css-animation.html b/tools/perf/page_sets/key_power_cases/css-animation.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d8457ac4ec392548dc2bf2871f0e8ee929e72203
|
| --- /dev/null
|
| +++ b/tools/perf/page_sets/key_power_cases/css-animation.html
|
| @@ -0,0 +1,171 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| + <head>
|
| + <title>CSS Animation Test</title>
|
| + <meta name="viewport" content="initial-scale=0.60, minimum-scale=0.60, maximum-scale=0.60">
|
| + <style type="text/css">
|
| +
|
| + #stage {
|
| + margin: 150px auto;
|
| + width: 600px;
|
| + height: 400px;
|
| + /*
|
| +
|
| + Setting the perspective of the contents of the stage
|
| + but not the stage itself
|
| +
|
| + */
|
| + -webkit-perspective: 800;
|
| + }
|
| +
|
| + #rotate {
|
| + margin: 0 auto;
|
| + width: 600px;
|
| + height: 400px;
|
| + /* Ensure that we're in 3D space */
|
| + -webkit-transform-style: preserve-3d;
|
| + /*
|
| + Make the whole set of rows use the x-axis spin animation
|
| + for a duration of 7 seconds, running infinitely and linearly
|
| + */
|
| + -webkit-animation-name: x-spin;
|
| + -webkit-animation-duration: 7s;
|
| + -webkit-animation-iteration-count: infinite;
|
| + -webkit-animation-timing-function: linear;
|
| + }
|
| +
|
| + .ring {
|
| + margin: 0 auto;
|
| + height: 110px;
|
| + width: 600px;
|
| + -webkit-transform-style: preserve-3d;
|
| + -webkit-animation-iteration-count: infinite;
|
| + -webkit-animation-timing-function: linear;
|
| + }
|
| +
|
| + .ring > :nth-child(odd) {
|
| + background-color: #995C7F;
|
| + }
|
| +
|
| + .ring > :nth-child(even) {
|
| + background-color: #835A99;
|
| + }
|
| +
|
| + .poster {
|
| + position: absolute;
|
| + left: 250px;
|
| + width: 100px;
|
| + height: 100px;
|
| + opacity: 0.7;
|
| + color: rgba(0,0,0,0.9);
|
| + -webkit-border-radius: 10px;
|
| + }
|
| +
|
| + .poster > p {
|
| + font-family: 'Georgia', serif;
|
| + font-size: 36px;
|
| + font-weight: bold;
|
| + text-align: center;
|
| + margin-top: 28px;
|
| + }
|
| +
|
| + /*
|
| + Set up each row to have a different animation duration
|
| + and alternating y-axis rotation directions.
|
| + */
|
| + #ring-1 {
|
| + -webkit-animation-name: y-spin;
|
| + -webkit-animation-duration: 5s;
|
| + }
|
| +
|
| + #ring-2 {
|
| + -webkit-animation-name: back-y-spin;
|
| + -webkit-animation-duration: 4s;
|
| + }
|
| +
|
| + #ring-3 {
|
| + -webkit-animation-name: y-spin;
|
| + -webkit-animation-duration: 3s;
|
| + }
|
| +
|
| + /*
|
| +
|
| + Here we define each of the three individual animations that
|
| + we will be using to have our 3D rotation effect. The first
|
| + animation will perform a full rotation on the x-axis, we'll
|
| + use that on the whole set of objects. The second and third
|
| + animations will perform a full rotation on the y-axis in
|
| + opposite directions, alternating directions between rows.
|
| +
|
| + Note that you currently have to specify an intermediate step
|
| + for rotations even when you are using individual transformation
|
| + constructs.
|
| +
|
| + */
|
| + @-webkit-keyframes x-spin {
|
| + 0% { -webkit-transform: rotateX(0deg); }
|
| + 50% { -webkit-transform: rotateX(180deg); }
|
| + 100% { -webkit-transform: rotateX(360deg); }
|
| + }
|
| +
|
| + @-webkit-keyframes y-spin {
|
| + 0% { -webkit-transform: rotateY(0deg); }
|
| + 50% { -webkit-transform: rotateY(180deg); }
|
| + 100% { -webkit-transform: rotateY(360deg); }
|
| + }
|
| +
|
| + @-webkit-keyframes back-y-spin {
|
| + 0% { -webkit-transform: rotateY(360deg); }
|
| + 50% { -webkit-transform: rotateY(180deg); }
|
| + 100% { -webkit-transform: rotateY(0deg); }
|
| + }
|
| + </style>
|
| +
|
| + <script type="text/javascript">
|
| +
|
| + const POSTERS_PER_ROW = 12;
|
| + const RING_RADIUS = 200;
|
| +
|
| + function setup_posters (row)
|
| + {
|
| + var posterAngle = 360 / POSTERS_PER_ROW;
|
| + for (var i = 0; i < POSTERS_PER_ROW; i ++) {
|
| + var poster = document.createElement('div');
|
| + poster.className = 'poster';
|
| + // compute and assign the transform for this poster
|
| + var transform = 'rotateY(' + (posterAngle * i) + 'deg) translateZ(' + RING_RADIUS + 'px)';
|
| + poster.style.webkitTransform = transform;
|
| + // setup the number to show inside the poster
|
| + var content = poster.appendChild(document.createElement('p'));
|
| + content.textContent = i;
|
| + // add the poster to the row
|
| + row.appendChild(poster);
|
| + }
|
| +
|
| + }
|
| +
|
| + function init ()
|
| + {
|
| + setup_posters(document.getElementById('ring-1'));
|
| + setup_posters(document.getElementById('ring-2'));
|
| + setup_posters(document.getElementById('ring-3'));
|
| + }
|
| +
|
| + // call init once the document is fully loaded
|
| + window.addEventListener('load', init, false);
|
| +
|
| + </script>
|
| + </head>
|
| +
|
| + <body>
|
| + <div id="stage">
|
| + <div id="rotate">
|
| + <div id="ring-1" class="ring"></div>
|
| + <div id="ring-2" class="ring"></div>
|
| + <div id="ring-3" class="ring"></div>
|
| + </div>
|
| + </div>
|
| +
|
| + </body>
|
| +
|
| +</html>
|
|
|