我正在編寫一些使用HTML5畫布的代碼。一般來說,它運作良好,但現在我發現了一個非常奇怪的行爲。奇怪的是,它在不同的瀏覽器上是一致的,所以一定是我瞭解錯誤的東西......儘管文檔似乎正在說我在做什麼。下面是代碼(這是一個對象的方法):奇怪的HTML5畫布drawImage行爲
MyCanvas.prototype.getElement = function() {
var innerHtml = "<div></div>";
var elem = jQuery(innerHtml, {
'id' : this.viewId
});
var canvas = jQuery("<canvas/>", {
'id' : this.viewId + "canvas",
'width' : this.width,
'height' : this.height
});
var w = this.width;
var h = this.height;
jQuery(elem).append(canvas);
var imgElem = new Image();
imgElem.src = this.maskImage;
imgElem.onload = function() {
var ctx = canvas[0].getContext('2d');
ctx.drawImage(this, 0, 0, w, h);
};
return elem;
};
這一點,我會再次使用jQuery這個元素附加到一個div已在該頁面(空白)之後。 結果將是圖像被拉伸到十倍於它的寬度....這很奇怪,因爲對於我所瞭解的drawImage,它應該使用w和h值來縮放圖像,並且假定w和h是畫布的大小,它應該適合。
我在做什麼錯?是否因爲我繪製了渲染的DOM樹?
你能發佈所有的javascript和html嗎? – Castrohenge 2010-07-08 11:32:12