<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Transitions and paused animations</title> <style type="text/css" media="screen"> .container { height: 200px; width: 200px; border: 1px solid black; -webkit-transition: -webkit-transform 0.5s; } .moved { -webkit-transform: translateX(100px); } .box { position: relative; height: 100px; width: 100px; margin: 50px; background-color: blue; -webkit-transform: translateZ(0); -webkit-animation: fade 1s infinite linear alternate; } .moved .box { -webkit-animation-play-state: paused; } @-webkit-keyframes fade { from { -webkit-transform: rotate(-20deg); } to { -webkit-transform: rotate(20deg); } } </style> <script type="text/javascript" charset="utf-8"> function runTest() { var box = document.querySelectorAll('.box')[0]; var container = document.querySelectorAll('.container')[0]; window.setTimeout(function() { container.className = 'container'; }, 250); window.setTimeout(function() { container.className = 'container moved'; }, 1500); window.setTimeout(function() { container.className = 'container'; }, 3000); } window.addEventListener('load', runTest, false) </script> </head> <body> <p>Box should animate smoothly left, then right then left again, and not jump at the end.</p> <div class="container moved"> <div class="box"></div> </div> </body> </html>