Source and Demo
Add this to your JS:
if(currentEffect === 'kenburns'){ createZoom(slider, settings, vars); zoom = $('.nivo-zoom:last', slider); var delta = (8 + Math.random() * 2) / 100; var neww = zoom.width() * (1 + delta); var newh = zoom.height() * (1 + delta); var x = delta * zoom.width(); //Math.random()*(neww-zoom.width()); var y = delta * zoom.height(); //Math.random()*(newh-zoom.height()); var zoomdir = Math.round(Math.random() * 4); zoom.animate({ opacity:'1.0'}, {easing:'linear',duration:settings.pauseTime*2/3}); if(zoomdir == 1) { zoom.find('img').animate({ height:newh+'px',width:neww+'px',left: '-'+x+'px',top: '-'+y+'px'},{easing:'linear',duration:settings.pauseTime*4/3, complete: function(){ slider.trigger('nivo:animFinished'); }}); } else if(zoomdir == 2) { zoom.find('img').animate({ height:newh+'px',width:neww+'px',right: '-'+x+'px',top: '-'+y+'px'}, {easing:'linear',duration:settings.pauseTime*4/3, complete: function(){ slider.trigger('nivo:animFinished'); }}); } else if(zoomdir == 3) { zoom.find('img').animate({ height:newh+'px',width:neww+'px',right: '-'+x+'px',bottom: '-'+y+'px'}, {easing:'linear',duration:settings.pauseTime*4/3, complete: function(){ slider.trigger('nivo:animFinished'); }}); } else { zoom.find('img').animate({ height:newh+'px',width:neww+'px',left: '-'+x+'px',bottom: '-'+y+'px'}, {easing:'linear',duration:settings.pauseTime*4/3, complete: function(){ slider.trigger('nivo:animFinished'); }}); } if($('.nivo-zoom', slider).length > 2) $('.nivo-zoom:first', slider).remove(); }
source share