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, так что вы можете цеплять вещи или ждать и т.д.