| <html> |
| <head> |
| <style> |
| .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.2s; |
| } |
| |
| .box1 { |
| left: 50px; |
| } |
| |
| .box2 { |
| background-color: red; |
| left: 100px; |
| } |
| </style> |
| <script src="transition-end-event-helpers.js"></script> |
| <script type="text/javascript"> |
| |
| var expectedEndEvents = [ |
| // [property-name, element-id, elapsed-time, listen] |
| ["left", "box1", 0.2, false], |
| ]; |
| |
| function startTransition() |
| { |
| var box = document.getElementById("box1"); |
| box.className = "box box2"; |
| } |
| |
| var firstTimeInHandleEndEvent = true; |
| function handleEndEvent(event) |
| { |
| recordTransitionEndEvent(event); |
| |
| event.target.style.webkitTransitionProperty = "none"; |
| if (firstTimeInHandleEndEvent) { |
| firstTimeInHandleEndEvent = false; |
| window.setTimeout(startTransition, 100); |
| } |
| } |
| |
| function setupTest() |
| { |
| var box = document.getElementById("box1"); |
| box.addEventListener("webkitTransitionEnd", handleEndEvent, false); |
| box.className = "box box1"; |
| } |
| |
| // We need to pass an explicit maxTime because we use two sequential |
| // transitions that each take 0.2s. |
| runTransitionTest(expectedEndEvents, setupTest, 0.5); |
| </script> |
| </head> |
| <body> |
| |
| <p>Initiating transitions on various properties of all boxes.</p> |
| |
| <div id="container"> |
| <div id="box1" class="box"></div> |
| </div> |
| |
| <div id="result"></div> |
| |
| </body> |
| </html> |