Utilisez setInterval (désolé, je me suis trompé en supposant retard() pourrait aider)
Essayez quelque chose comme ça (example here). En supposant que votre nuage est un div:
function moveMe(){
var $this = $('#cloud');
$this.each(function(){
var ranX=Math.floor(Math.random()*11);
var startX = $this.offset().left;
var maxX = $this.parent().width();
var newX = startX+ranX;
//newX = (newX>maxX)? 0: newX;
//alert("newX="+newX);
$this.animate({
left: newX+'px'
}, "slow");
});
}
$(function(){
setInterval('moveMe()',1000);
});
Notez que le balisage hte doit contenir:
<div id="sky">
<div class="cloud" id="cloud"></div>
</div>
Le CSS:
#sky{
width:990px;
height:300px;
background:blue;
position:relative; /* important */
}
.cloud{
position:absolute; /* important */
top:40px;
left: 0;
width:100px;
height:80px;
background: transparent url(images/cloud.png) top left no-repeat;
}
Tout tutoriel d'animation JavaScript devrait vous aider à démarrer. Quel est le problème réel que vous avez? – Quentin
Quel est le problème avec settimeout? lent? – PeanutPower