<!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;
      transition: transform 0.5s;
    }
    
    .moved {
      transform: translateX(100px);
      
    }
    .box {
      position: relative;
      height: 100px;
      width: 100px;
      margin: 50px;
      background-color: blue;
      transform: translateZ(0);
      animation: fade 1s infinite linear alternate;
    }
    
    .moved .box {
      animation-play-state: paused;
    }
    
    @keyframes fade {
      from { transform: rotate(-20deg); }
      to   { 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>
