Показать сообщение отдельно
  #3 (permalink)  
Старый 01.07.2009, 09:19
Интересующийся
Отправить личное сообщение для Tohin Посмотреть профиль Найти все сообщения от Tohin
 
Регистрация: 30.06.2009
Сообщений: 23

Сообщение от Riim Посмотреть сообщение
$('div.n').animate({"top": "+=350"},2500).animate({"bottom": "+=110"},1500);
Не... не то... див не один... дива два (div.n и div.n+1), и нужно запихнуть их анимацию в одну и ту же очередь.

Я тормоз! ответ в теме на первой странице Порядок выполнения команд
По идее должно быть так:
$('div.n').fadeIn(1500).fadeOut(1500,function() {
		$('div.n+1').fadeIn(1500); 
	});

ну или то же самое с animate

Сообщение от Riim Посмотреть сообщение
Лучше не запрещать постановку в очередь, а прерывать предыдущую анимацию.
Тоже не катит... желательно, чтобы анимация предыдущего объекта была полностью завершена, и только после этого принималась постановка в очередь новых анимаций.

Как и думал я не первый стакиваюсь с этим траблом
На этом форуме нашел код:
var hideDelayTimer = null;
    var flag = 0;
    $("#blablabla").bind("mouseenter",function() {
        if (hideDelayTimer) clearTimeout(hideDelayTimer);
        if (flag == 0) {
            flag = 1;
            $(this).animate({"width": "+=120px"}, "slow");
        } else {
            return;
        };
    }).bind("mouseleave",function(){
        if (hideDelayTimer) clearTimeout(hideDelayTimer);
        hideDelayTimer = setTimeout(function() {
        hideDelayTimer = null; 
        if (flag == 1) { 
            $("#blablabla").animate({"width": "-=120px"}, "slow", function() {
                flag = 0;
             });
        } else {
            return;
        };
        }, 500);
    });


Как я понял, перед выполнением анимации задается переменная flag, а после ее окончания она обнуляется. Перед началом анимации проверяется состояние переменной и в сучае выпонения иной анимации новая не выполняется.
Не понял назначение переменной hideDelayTimer и проводимых с ней операций. Подскажите?

Последний раз редактировалось Tohin, 02.07.2009 в 00:05.
Ответить с цитированием