views:

200

answers:

1

Can this be done ? Basically I want to animate an absolute-positioned image with right:xxxPX, let's say. Well, when the animation is in progress, can I add a "trail" effect to it?

Thanks, Adrian

+1  A: 

This should work:

var box = $('#box'),
    // Create some clones (these make up the trail)
    clones = $.map(Array(10), function(item, i){
        return box.clone().css('opacity', 1 / (i + 1)).hide().insertAfter(box);
    });

box.animate({
    top: 100,
    left: 200
}, {
    duration: 1000,
    step: function(now, fx) {

        // On each step, set a timeout for each clone,
        // making it move to the required position.

        var prop = fx.prop;

        $.each(clones, function(i, clone){
            clone = $(clone).show();
            setTimeout(function(){
                clone.css(prop, now);
            }, 50 * i);
        });

    }
});

Demo: http://jsbin.com/ifobe3

J-P
just what I was looking for, thanks J-P!
Adrian