如何动态改变精灵位置?

Gih*_*ita 5 html javascript css jquery css3

这是我发现的一个精灵

在此输入图像描述

.common-spinner.common-spinner-40x55 {
    height: 55px;
    width: 40px;
}

.common-spinner {
    background: url("images/loading-sprite.png") no-repeat scroll 100% 100% transparent;
}

<div class="loading">
<div class="common-spinner common-spinner-40x55" style="background-position: 0px 0px;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

任何想法如何从这构建加载动画?我尝试使用for循环来改变位置

for(i=0; i<=720;) {
    $('.common-spinner').css('background-position', '-'+i+'px 0px');
    i=i+20;
}
Run Code Online (Sandbox Code Playgroud)

但我看不到任何动画可能因为它太快了?

知道如何做到这一点?

问候

我已经使用Erik Hesselink解决方案向jsfiddle添加了代码

http://jsfiddle.net/X7tGb/

Eri*_*ink 5

要实际看到动画,您必须离开Javascript执行线程.这可以通过使用超时来完成.就像是:

function setBgPosition (px)
{
  return function ()
  {
    $('.common-spinner').css('background-position', '-' + px + 'px 0px');
    if (px < 720) setTimeout(setBgPosition(px + 20), 100);
  }
}

setTimeout(setBgPosition(0), 100);
Run Code Online (Sandbox Code Playgroud)