| <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> |