Я не совсем понял, какие точные размеры вы хотели, но вы можете заполнить нужные значения. Вот общая идея. 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/
Да , это выполнимо. Что вы пытались и с какими проблемами вы столкнулись? –
Просто интересно, был ли лучший способ, чем делать это, как ответ Саймона (который я уже пробовал и работает). – CaptSaltyJack
haha, его полный вопрос, вы должны доказать, что сделали, и спросить, как сделать его более чистым ;-) –