| <html> |
| <head> |
| <title>Transition End Events</title> |
| <style type="text/css" media="screen"> |
| .box { |
| position: relative; |
| left: 0; |
| height: 100px; |
| width: 100px; |
| margin: 10px; |
| background-color: blue; |
| -webkit-transform: translate(0); |
| -webkit-transition-property: -webkit-transform; |
| -webkit-transition-duration: 0.5s; |
| } |
| |
| .box1 { |
| -webkit-transform: translate(50px); |
| } |
| |
| .box2 { |
| -webkit-transform: translate(50px) scale(1.05); |
| -webkit-transition-duration: 0.55s; |
| } |
| |
| .box3 { |
| -webkit-transform: translate(0); /* same as default */ |
| -webkit-transition-duration: 0.3s; |
| } |
| |
| .box4 { |
| -webkit-transform: translate(100px); |
| -webkit-transition-duration: 0.4s; |
| } |
| |
| .box5 { |
| /* nothing */ |
| } |
| |
| </style> |
| <script src="transition-end-event-helpers.js" type="text/javascript" charset="utf-8"></script> |
| <script type="text/javascript" charset="utf-8"> |
| |
| var expectedEndEvents = [ |
| // [property-name, element-id, elapsed-time, listen] |
| ["-webkit-transform", "box1", 0.5, false], |
| ["-webkit-transform", "box2", 0.55, false], |
| ["-webkit-transform", "box4", 0.4, false] |
| ]; |
| |
| function transitionElement(index) |
| { |
| var boxes = document.body.getElementsByClassName('box'); |
| boxes[index-1].className = "box box" + index; |
| } |
| |
| function setupTest() |
| { |
| var boxes = document.body.getElementsByClassName('box'); |
| for (var i = 0; i < boxes.length; ++i) { |
| boxes[i].addEventListener("webkitTransitionEnd", recordTransitionEndEvent, false); |
| } |
| |
| window.setTimeout(function() { transitionElement(1); }, 100); |
| window.setTimeout(function() { transitionElement(2); }, 150); |
| window.setTimeout(function() { transitionElement(3); }, 200); |
| window.setTimeout(function() { transitionElement(4); }, 50); |
| window.setTimeout(function() { transitionElement(5); }, 150); |
| } |
| |
| runTransitionTest(expectedEndEvents, 1.0, setupTest); |
| |
| </script> |
| </head> |
| <body> |
| |
| <p>Initiating transitions on transform properties of all boxes, starting at different times and with different durations and values.</p> |
| |
| <div id="container"> |
| <div id="box1" class="box"></div> |
| <div id="box2" class="box"></div> |
| <div id="box3" class="box"></div> |
| <div id="box4" class="box"></div> |
| <div id="box5" class="box"></div> |
| </div> |
| |
| <div id="result"></div> |
| |
| </body> |
| </html> |