ドロップ アクションで複数の画像を読み込もうとしていますが、それらのサイズを変更してサムネイルとして追加することはできません。画像が非常に大きくなる可能性があり、サムネイルのサイズを小さくしたいので、サイズ変更部分は非常に重要です。
これが私のコードです:
loadingGif(drop);
for (var i=0;i<files.length;i++) {
var file = files[i];
var reader = new FileReader();
reader.onload = function(e) {
var src = e.target.result;
var img = document.createElement('img');
img.src = src;
var scale = 100/img.height;
img.height = 100;
img.width = scale*img.width;
output.push('<div id="imagecontainer"><div id="image">'+img+'</div><div id="delimage"><img src="img/del.jpg"" /></div></div>');
if(output.length == files.length) {
drop.removeChild(drop.lastChild);
drop.innerHTML += output.join('');
output.length = 0;
}
}
reader.readAsDataURL(file);
}
おそらくわかるように、すべてのファイルがロードされるまで、ドロップゾーンにロード中の gif 画像を挿入します (output.length == files.length)。ファイルが読み込まれると、html を配列に追加し、読み込みが完了したら出力します。問題は、img オブジェクト (画像のサイズを変更するにはこのオブジェクトが必要) を html 文字列に追加できないように見えることです。これは、img がオブジェクトであるため明らかなようです...私はこれをします?:)