Ciao,
puoi risolvere in svariati modi. Ad esempio con un semplice setInterval che chiami la funzione stessa ad intervalli regolari oppure con un setTimeout all'interno della funzione o con altri svariati metodi.
Qui un esempio dove ho usato setTimeout:
codice:
<!DOCTYPE HTML>
<head>
<style type="text/css">.box{width:100px;height:100px;background:#009;position:relative}</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var posizioneIniziale = $('.box').css('left');
(function loop(){
$('.box').css('left',posizioneIniziale).stop().animate({left:'380px'},2000,'easeInOutQuad',function(){setTimeout(loop,5000)});
})();
});
</script>
</head>
<body>
<div class="box"></div>
</body>
</html>