在此javascript代碼中,我下載了一堆圖像鏈接,然後將它們繪製到網格主題中的畫布上。我得到了有多少個鏈接,然後相應地設置畫布的寬度和高度,因此每行有200個圖像。高度基於總圖像數量。我注意到的問題是,根據我使用的高度,圖像顯示在畫布上。例如,如果我將高度設置爲12行,則會看到圖像,但如果將其設置爲超過該值,則不會顯示圖像。即使設置爲1行,圖像也只會在Firefox 23中顯示.IE9和chrome29不顯示任何內容。將大量圖像繪製到大畫布上時出現異常行爲
有誰知道這裏是否有問題,或者什麼是將大量圖像繪製成大畫布的穩定方法?
謝謝。
function onProfileSuccessMethod(sender, args) {
alert("Request Arrived");
var listEnumerator, picCount, item, picobj, path, office, ctx, x, y, imageObj;
listEnumerator = listItems.getEnumerator();
picCount = listItems.get_count();
var w = 125;
var h = 150;
var rl = 200;
var canvas = document.createElement('canvas');
canvas.id = "picGallery";
canvas.width = w * rl;
canvas.height = h * 12// * Math.ceil(picCount/rl);
canvas.style.zIndex = 0;
canvas.style.border = "0px solid white";
context = canvas.getContext("2d");
x = 0;
y = 0;
while (listEnumerator.moveNext()) {
item = listEnumerator.get_current();
picobj = item.get_item('Picture');
office = item.get_item('Office');
office = office == null ? "" : office;
if (picobj != null) {
path = picobj.get_url();
imageObj = new Image();
imageObj.xcoor = x;
imageObj.ycoor = y;
imageObj.src = path;
imageObj.onload = function() {
context.drawImage(this, this.xcoor, this.ycoor, w, h);
};
}
x += w;
if (x == canvas.width) {
x = 0;
y += h;
}
}
document.body.appendChild(canvas);
}
什麼是getEnumerator()? – dandavis
因此,每個圖像是125x150像素?因爲您將畫布寬度設置爲125 * 200 = 25000像素,並將高度設置爲更合理的150 * 12 = 1800像素。 –
這是無關的,但如果您必須知道,它是一個Microsoft SharePoint客戶端對象模型函數,用於枚舉從ajax請求(ecma腳本)返回的對象。 – omega