| <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-transition-property: width, left, background-color, height, top; |
| -webkit-transition-duration: 0.5s; |
| } |
| |
| .box1 { |
| left: 50px; |
| } |
| |
| .box2 { |
| background-color: red; |
| left: 50px; |
| } |
| |
| .box3 { |
| width: 150px; |
| background-color: green; |
| left: 50px; |
| height: 120px; |
| -webkit-transition-duration: 0.6s; |
| } |
| |
| .box4 { |
| left: 100px; |
| height: 140px; |
| -webkit-transition-duration: 0.3s; |
| } |
| |
| .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] |
| ["background-color", "box2", 0.5, false], |
| ["background-color", "box3", 0.6, false], |
| ["height", "box3", 0.6, false], |
| ["height", "box4", 0.3, false], |
| ["left", "box1", 0.5, false], |
| ["left", "box2", 0.5, false], |
| ["left", "box3", 0.6, false], |
| ["left", "box4", 0.3, false], |
| ["width", "box3", 0.6, 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, 2.0, setupTest); |
| |
| </script> |
| </head> |
| <body> |
| |
| <p>Initiating transitions on various properties of all boxes, with different start times on the transitions.</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> |