Я не совсем понял, какие именно размеры вам нужны, но вы можете указать нужные значения. Вот общая идея. Анимации jQuery помещаются в очередь и естественным образом связаны друг с другом, так что вы можете просто отключить их все, и они будут помещены в очередь, а затем использовать функцию завершения последней, чтобы запустить ее снова, как показано ниже:
function go() {
$("#box")
.animate({left: "100px", top: "0"}, 1000)
.animate({left: "400px", top: "0"}, 1000)
.animate({left: "400px", top: "400px"}, 2000)
.animate({left: "100px", top: "400px"}, 2000, go);
}
go();
$("#stop").click(function() {
$("#box").stop(true);
});
$("#start").click(go);
Вы можете остановить анимацию в любое время, вызвав метод jQuery .stop(true)
для объекта анимации. Вот рабочая демонстрация: http://jsfiddle.net/jfriend00/PnzQ9/