因此,我正在爲網站製作此「拖放區域」。顯示多個縮略圖不能正常工作
用戶可以將圖像拖放到該區域,並且將該區域上放置的所有jpeg顯示爲縮略圖。我做了一個所有jpeg列表,這些列表掉落在該區域,並且工作正常。現在每次將新的jpeg添加到該列表中時,我想將所有jpeg顯示爲尺寸爲100x150px的縮略圖。
這是我的代碼。 這裏是一個喜歡小提琴http://jsfiddle.net/cJkYj/2/
function displayThumbnailes() {
//Clear the div.
var outerDiv = document.getElementById('fileChooserDiv');
while (outerDiv.hasChildNodes()) {
outerDiv.removeChild(outerDiv.lastChild);
}
var div = document.createElement('div');
outerDiv.appendChild(div);
//Go over the Files and add Thumbnails for all jpegs.
for(var i = 0; i < files.size(); i++) {
if(files.get(i).type == "image/jpeg") {
var reader = new FileReader();
reader.onloadend = function() {
var result = reader.result;
displayThumbnail(result, div);
}
reader.readAsDataURL(files.get(i));
}
}
}
function displayThumbnail(src, div) {
var img = new Image();
img.onload = function() {
var cv = document.createElement('canvas');
cv.style.border = "1px solid #ffffff";
cv.width = 100;
cv.height = 150;
var ctx = cv.getContext("2d");
ctx.drawImage(img, 0, 0, 100, 150);
div.appendChild(cv);
}
img.src = src;
}
我的問題:我相信這個代碼將顯示所有thumbnailes在div的領域,但我只看到最後一個。
這看起來像我搞亂了一些同步或什麼。 「文件」是一個對象,用於管理在「放置區域」上拖動的文件。 我希望每個縮略圖都有自己的畫布,以便以後可以向他們添加一個onclick事件。
任何幫助將appriciated ^^
你能提供一個jsfiddle嗎?爲什麼要將縮略圖放在畫布內?您也可以將「onclick」事件添加到「普通」html元素。 –
使用Canvas的最大原因是我之前和canvas一起工作,並且知道我的方式。我想調整圖像到一定的尺寸。那麼可能可能使用了「IMG」 - 元素^^ –
圖像是從另一個div內的頁面拖動,還是從用戶本地硬盤拖動並丟棄在頁面上? – surfmuggle