Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   animete + stop(); (https://javascript.ru/forum/events/35051-animete-stop-%3B.html)

Marker 29.01.2013 13:26

animete + stop();
 
Добрый день.. Есть такой код..

$("#go").click(function(){
$(".block").animate({left: '1200px'}, 2000);
$(".block").animate({top: '500px'}, 2000);
$(".block").animate({left: '100px',top: '100px'}, 2000);
$(".block").animate({width: '1100px', height: '400px'}, 2000);
});
 
$("#stop").click(function(){
$(".block").stop();
});


Когда жму на #stop при середине первой анимации, оно не останавливаеться, оно с середины просто переходит выполнять вторую анимацию, так же с третим. Как исправить? мне нужно чтобы, когда я нажимал на стоп - останавливалось, и ещё раз на го - продолжало анимацию.

Deff 29.01.2013 13:29

$(".block").stop(true,true)

Marker 29.01.2013 13:32

При нажатии в середине анимации на #block с этим stop кидает в окончательное положение первой анимации - тоесть не останавливаеться на месте.

Marker 29.01.2013 13:38

Проблему решил, надо было stop(true);.. Теперь как сделать чтобы анимация производилась один раз. Тоесть после 3ей анимации можно нажать на старт и все будет происходить заново.

Deff 29.01.2013 14:45

Цитата:

Сообщение от Marker
нажать на старт и

:) Что есть старт ?

DjDiablo 29.01.2013 15:35

Что есть старт ?
$("#go").click надо пологать :)

Marker
думаю тебе надо сбросить координаты block в начальную позицию, используй css
и кстатии нет нужды искать $(".block") постоянно,
достаточно найти элементы один раз, а далее перечислять функции через точку,
либо однажды сохранитьт результат $(".block") в переменную и далее пользоваться переменной.
$("#go").click(function(){
   var block=$(".block");
   block.css('начальные координаты для анимации');
   block.animate({left: '1200px'}, 2000);
   ...
});


Часовой пояс GMT +3, время: 00:33.