animate-preserve3d-parent.html 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <!DOCTYPE HTML>
  2. <html class="reftest-wait">
  3. <title>Testcase, bug 1176969</title>
  4. <style>
  5. body { padding: 50px }
  6. #grandparent { perspective: 400px }
  7. @keyframes spin {
  8. 0%, 85% { transform: rotateX(-45deg) rotateY(-45deg) rotateZ(-45deg); }
  9. 90%, 100% { transform: rotateX(-30deg) rotateY(-30deg) rotateZ(-30deg); }
  10. }
  11. #parent {
  12. background: blue;
  13. height: 200px; width: 200px;
  14. border: 1px solid black;
  15. transform-style: preserve-3d;
  16. /* use a -99.9s delay to start at 99.9% and then move to 0% */
  17. animation: spin 100s -99.9s linear 2 paused;
  18. }
  19. #child {
  20. transform: translateZ(15px);
  21. height: 100px; width: 100px; margin: 50px;
  22. background: yellow;
  23. box-shadow: 3px 3px olive;
  24. }
  25. </style>
  26. <div id="grandparent">
  27. <div id="parent">
  28. <div id="child">
  29. </div>
  30. </div>
  31. </div>
  32. <script>
  33. document.getElementById("parent").addEventListener("animationstart", StartListener, false);
  34. function StartListener(event) {
  35. var test = document.getElementById("parent");
  36. test.style.animationPlayState = 'running';
  37. test.addEventListener("animationiteration", IterationListener, false);
  38. }
  39. function IterationListener(event) {
  40. setTimeout(RemoveReftestWait, 0);
  41. }
  42. function RemoveReftestWait() {
  43. document.documentElement.classList.remove("reftest-wait");
  44. }
  45. </script>