いくつかの画像があり、各画像の幅は 1400px です。すべての画像をロードした後、すべての画像の幅の合計を警告します。これが私のコードです。
var images = new Array("0.jpg", "1.jpg", "2.jpg");
for (var i = 0; i < images.length; i = i + 1) {
$("#img_place").append("<img src='" + images[i] + "'>");
}
var loadedImgsCount = 0;
var imgTotalWidth = 0;
for (var i = 0; i < images.length; i = i + 1) {
var currImg = new Image();
currImg.src = images[i];
currImg.onload = function() {
loadedImgsCount = loadedImgsCount + 1;
imgTotalWidth = imgTotalWidth + currImg.width;
}
}
interv = setInterval(function() {
if (images.length === loadedImgsCount) {
alert(imgTotalWidth );
clearInterval(interv);
}
}, 500);
そしてHTMLで:
<div id="img_place">
</div>
このコードは、たとえば 3 つの画像の場合です。問題は、クロムとサファリでは、このコードの結果が間違っている場合があります: 1400 の場合、2800 の場合がありますが、正しい場合もあります: 4200 です。どこでエラーが発生しましたか? 私のコードがサファリとクロムで正しく動作しないのはなぜですか?