Mootools 1.3.1: синхронизация цепочек и анимация двух элементов синхронно

Я хочу оживить div#w_xxx и div#w_xxx img в то же время.

Они должны стать больше, и после этого они должны достичь своей старой ширины и высоты.

Проблема в том, что mootools воспроизводит все анимации одновременно, поэтому я не вижу анимацию, и я попробовал некоторые .chainфункция из MooTools, но я не работал.

Мой код выглядит так:

$("w_"+current_item+"").set('morph', {
            duration: 1000,
            transition: Fx.Transitions.Bounce.easeOut
        });
        $("w_"+current_item+"").morph({
                    'opacity': '1',
                    'width': 366,
                    'height': 240,
                    'z-index': '100'
        });

        $$("div#w_"+current_item+" img").set('morph', {
            duration: 1000,
            transition: Fx.Transitions.Bounce.easeOut
        });
        $$("div#w_"+current_item+" img").morph({
                    'opacity': '1',
                    'width': 366,
                    'height': 240,
                    'z-index': '100'
        });

        $("w_"+current_item+"").set('morph', {
            duration: 1000,
            transition: Fx.Transitions.Bounce.easeOut
        });
        $("w_"+current_item+"").morph({
                    'opacity': '1',
                    'width': 183,
                    'height': 120,
                    'z-index': '100'
        });

        $$("div#w_"+current_item+" img").set('morph', {
            duration: 1000,
            transition: Fx.Transitions.Bounce.easeOut
        });
        $$("div#w_"+current_item+" img").morph({
                    'opacity': '1',
                    'width': 183,
                    'height': 120,
                    'z-index': '100'
        });

1 ответ

Решение

Вы должны посмотреть на Fx.Elements от MooTools-more: http://mootools.net/docs/more/Fx/Fx.Elements, который был разработан для запуска нескольких анимаций в едином таймере.

http://jsfiddle.net/dimitar/tC4V4/

// mock your current_item... 
var current_item = 1;

var w = document.id("w_" + current_item);
new Fx.Elements($$(w, w.getElement("img")), {
    onComplete: function() {
        console.log("done");
    },
    duration: 4000,
    transition: Fx.Transitions.Bounce.easeOut,
    link: "chain"
}).start({
    0: {
        'opacity': '1',
        'width': 366,
        'height': 240,
        'z-index': '100'
    },
    1: {
        'opacity': '1',
        'width': 183,
        'height': 120,
        'z-index': '100'

    }   
}).start({
    0: {
        opacity: 0
    }  

});

Кроме того, он поддерживает link: chain, так что вы можете цеплять вещи или ждать и т.д.

Другие вопросы по тегам