2011-04-08 39 views
0

我想我在这里有一个大脑放屁...另外,请注意,setTimeout和硬编码6只是为了测试动画。它最终会出现在​​中,并对图像进行计数。反正这个代码:JavaScript/jQuery装载器数学问题

var imagesLoaded = 0; 

var loader = function(){ 
    setTimeout(function(){ 
     if(imagesLoaded < 6){ 
     imagesLoaded++; 
     console.log($('.'+settings.loaderClass).width()/imagesLoaded+'px') 
     loader(); 
     } 
    },500) 
} 

loader(); 

几乎可以工作,但数学是问题。这倒退了。好吧,让我扭转它想:

console.log(imagesLoaded/$('.'+settings.loaderClass).width()+'px') 

但后来我得到:

0.0026041666666666665px 
0.005208333333333333px 
0.0078125px 
0.010416666666666666px 
0.013020833333333334px 
0.015625px 

而且,很明显,这是行不通的。我不得不做的数学是什么?基本上标记仅仅是:

<div class="loader"> 
    <div class="loaderBar"></div> 
</div> 

和即时通讯只是增加.loaderBar的宽度。

谢谢!

回答

1

的console.log(($( ' '+ settings.loaderClass).WIDTH()* imagesLoaded/6)+' 像素')

凡6是加载的图像的总数,这是你的情况可能是一个变量。然后序列变为WIDTH * 0/6,WIDTH * 1/6,WIDTH * 2/6 ...,如果需要显示100%完成,您可能需要包含一个WIDTH * 6/6的阶段。

3

您需要(imagesLoaded/totalImages)* loaderWidth。