我正在编写一些使用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