Мне удалось наложить ноль-анимацию перед нужной анимацией, а не использовать setTimeout.
Например,
var moving_distance = $("#scroller").height()-($(window).height()-$("#slideshow").height());
var firstEnter = true;
$("#scroller").mouseenter(function(event){
if (firstEnter)
firstEnter = false;
else {
$("#scroller").stop();
$("#scroller").animate({top:'+=0', 3000);
$('#scroller').animate({top:'-='+$('#scroller').top()), 1000);
}
}).mouseleave(function(event){
$('#scroller').stop();
$("#scroller").animate({top:'+=0', 3000);
$('#scroller').animate({top:'+='+moving_distance), 1000);
});
Я думаю, из вашего описания, что вы хотитеdiv, чтобы стоять на месте, пока мышь не будет перемещена в div.Затем, когда мышь уходит в первый раз, она должна утонуть.После этого, когда мышь снова возвращается, она должна вернуться в исходное положение.Я думаю, что это будет близко к этому.
HTH