JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<div ng-app="imageAnimation">
    <div ng-controller="splashCtrl">       
        <div class="btn">
            <input type="button" value="Run" ng-click="run()"/>
            <input type="button" value="Stop" ng-click="stop()"/>
            </div>    
    <img ng-src="{{url1}}" width="200" height="200" class="picbig" />             <img ng-src="{{url2}}" width="200" height="200" class="old"/>
        <img ng-src="{{url3}}" width="200" height="200" class="old"/>
        <img ng-src="{{url4}}" width="200" height="200" class="old"/>
        <image-pro></image-pro>
         
    </div>
</div>

CSS

.btn{
    width:100px;
    height:80px;
}
.old
{
    display: none;
}

.current 
{
    display: visible;
}

.zoom 
{
    width:200px;
	height:200px;
	margin: 0px 0px 0px 200px;
	z-index:98;
	opacity:1;
}

.picbig{	
    margin: 0px 0px 0px 200px;
    position: relative;
    /* Chrome, Safari, Opera */
    -webkit-animation-name: zoomObj;
    -webkit-animation-duration: 5s;   
    -webkit-animation-delay: 2s;   
    -webkit-animation-fill-mode: forwards;
	
}

@-webkit-keyframes zoomObj {
    0%   { width:200px; height: 200px;}    
    10%  {width: 210px; height: 210px;}
    20%  {width: 220px; height: 220px;}
    30%  {width: 230px; height: 230px;}
    50%  {width: 250px; height: 250px;}
    53%  {width: 250px; height: 250px; left: -1px;}
    75%  {width: 250px; height: 250px; left: -100px;}
    100%  {width: 250px; height: 250px; left: -400px; }    
}

.move
{
    position: relative;
    /* Chrome, Safari, Opera */
    -webkit-animation-name: myfirst;
    -webkit-animation-duration: 5s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-delay: 2s;    
    -webkit-animation-direction: alternate;
    -webkit-animation-play-state: running;  
}

/* Chrome, Safari, Opera */
@-webkit-keyframes myfirst {
    0%   {left:-0px; top:0px;}    
    30%  {left: -100px; top:0px;}
    100%  {left: -1000px; top:0px;}
}

JavaScript

var app = angular.module('imageAnimation',[]);
app = app.controller('splashCtrl',['$scope', function($scope){
    $scope.url1 = "http://programming4.us/image/112012/Application%20Icons_3.jpg";
$scope.url2 = "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcS6BFgS3ITYJBdmZ4LeRtlI5et8FJrMskp-Qo1TgCYp-IuiSQN1";
$scope.url3    = "http://watchstreetconsulting.com/wp-content/uploads/2013/10/mobile-apps-icon.png";
$scope.url4 = "http://static.squarespace.com/static/513ed917e4b0970eaf221d11/t/5159d968e4b0c7150a109fe5/1364842857364/MOBILE-APP-ICON-GREEN_300x300.png";
}]);

app.directive('imagePro',function($timeout){
    return {  
         restrict: 'EA',
        link: function(scope,elm, attr, ctrl){
            
          $(".zoom").click( function(){               
              $(this).removeClass("zoom").addClass("picbig"); 
          }); 
           
          scope.run = function(){                
               $(".picbig").css("-webkit-animation-play-state", "running");      
          }   
           
          scope.stop = function(){
               $(".picbig").css("-webkit-animation-play-state", "paused"); 
          }   
        }
    }
});