"烟雾缭绕"效果javascript精灵动画

lin*_*eak 2 javascript animation settimeout jquery-animate

这段代码和动画在jQuery 1.4.4及更低版本上运行得很好,但在以后的版本中却没有.任何人都可以对这个问题有所了解,并帮助一个适用于最新jQuery的版本.我在下面提供了一个小提琴.

http://jsfiddle.net/Y7Ek4/10/

poof效果基本上依赖于调整背景位置来创建一个css sprite动画,但是它对新的jQuery很不满意.

lin*_*eak 5

jQuery的动画不再适用于精灵动画.我不得不自己动手使用setTimeout.效果的灵感来自于用于从OS X底座中移除物品的效果.

精灵:

噗效精灵

相关的JS代码:

function animatePoof() {
    var bgTop = 0,
        frame = 0,
        frames = 6,
        frameSize = 32,
        frameRate = 80,
        puff = $('#puff');
    var animate = function(){
        if(frame < frames){
            puff.css({
                backgroundPosition: "0 "+bgTop+"px"
            });
            bgTop = bgTop - frameSize;
            frame++;
            setTimeout(animate, frameRate);
        }
    };

    animate();
    setTimeout("$('#puff').hide()", frames * frameRate);
}
Run Code Online (Sandbox Code Playgroud)

完整的工作示例,包括HTML和CSS:http: //jsfiddle.net/Y7Ek4/22/