Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   when done animation (https://javascript.ru/forum/jquery/29418-when-done-animation.html)

Miro 27.06.2012 10:19

when done animation
 
Всем доброго!

Помогите, пожалуйста, разобраться:

Если необходимо что-то выполнить после окончания анимации - пишем, например:

$('#element').fadeIn(500, function() {
   //то, что надо выполнить
});


Но fadeIn используется массово и в последствии для простоты изменения длины анимации хочу загнать его в функцию:

function fadeIn(x) { $(x).fadeIn(500); }
fadeIn(myVar);



Как что-то выполнить по окончании анимации в функции fadeIn() ?

P.S. пробовал when done, но такой вариант не ждёт окончания анимации.

melky 27.06.2012 10:42

почему просто так не написатЬ?
function fadeIn(x, callback) { return $(x).fadeIn(500, callback); }

Gvozd 27.06.2012 10:51

function fadeIn(x, func) { $(x).fadeIn(500, func); }
fadeIn(myVar, function() {
   //то, что надо выполнить
});


function fadeIn(x) {
    var def = $.Deferred();
    $(x).fadeIn(5000, function() {
        def.resolve(x);
    });
    return def;
}
var q = fadeIn('#element');
q.done(function(elem){
    console.log(elem)
});

и модификация последнего кода, из гугла(запрос jquery fadein deferred)
http://www.scottlogic.co.uk/2011/05/...rx-observable/

Miro 27.06.2012 11:23

Цитата:

Сообщение от melky (Сообщение 184491)
почему просто так не написатЬ?
function fadeIn(x, callback) { return $(x).fadeIn(500, callback); }

Спасибо! То, что надо!

Miro 27.06.2012 11:25

Цитата:

Сообщение от Gvozd (Сообщение 184492)
function fadeIn(x, func) { $(x).fadeIn(500, func); }
fadeIn(myVar, function() {
   //то, что надо выполнить
});


function fadeIn(x) {
    var def = $.Deferred();
    $(x).fadeIn(5000, function() {
        def.resolve(x);
    });
    return def;
}
var q = fadeIn('#element');
q.done(function(elem){
    console.log(elem)
});

и модификация последнего кода, из гугла(запрос jquery fadein deferred)
http://www.scottlogic.co.uk/2011/05/...rx-observable/

И вам спасибо!


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