Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2012, 09:35
Интересующийся
Отправить личное сообщение для x3zone Посмотреть профиль Найти все сообщения от x3zone
 
Регистрация: 30.08.2012
Сообщений: 26

По второму клику анимация выполняется с середины скрипта
Здравствуйте!
Есть код
$('.map_but1').click(animateChel);
var chelPos = true;
function animateChel(){
$('.map_auto').animate({"opacity":"0"},100)
if(chelPos == true){
chelPos = false;
$(this).css({"background-image":"url(./img/map_but1.png)"})
$('.map_but2').css({"background-image":"url(./img/map_but2.png)"})
$('.map_chel').animate({"opacity":"1"},300);
function chel2(){
$('.map_chel2').animate({"opacity":"1"},300);
$('.map_chel2').animate({"right":"290px","top":"90px"},1000);
$('.map_chel2').animate({"right":"395px","top":"235px"},800);//2 клик начинается с этой анимации
}
function chel(){
$('.map_chel').animate({"left":"265px","bottom":"150px"},1000);
$('.map_chel').animate({"left":"312px","bottom":"215px"},800);//2 клик начинается с этой анимации
}
setTimeout(chel,600);
setTimeout(chel2,300);
}
return chelPos = true;
}


Вся анимация выпоняется только по первому клику,по каждому последующему выпоняется с середины скрипта.Не понимаю почему так.
Ответить с цитированием
  #2 (permalink)  
Старый 26.10.2012, 07:57
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

Ничего не понятно, давайте полный рабочий код, со всеми элементами, иначе на чем проверять?

Самому писать лень.
Ответить с цитированием
  #3 (permalink)  
Старый 26.10.2012, 23:09
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

И не мудрено, поскольку эти функции выполняются одновременно:
$('.map_chel2').animate({"right":"290px","top":"90px"},1000);
$('.map_chel2').animate({"right":"395px","top":"235px"},800);

Чтобы выполнить их по очереди:
$('.map_chel2').animate({"right":"290px","top":"90px"},1000,"linear", function() {
$('.map_chel2').animate({"right":"395px","top":"235px"},800);
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery: событие по второму подрят клику timyrio Общие вопросы Javascript 23 02.05.2011 01:11