Jquery HTML5:画布圆形是椭圆形的,因为宽度和高度不同

Jquery HTML5:画布圆形是椭圆形的,因为宽度和高度不同,jquery,html,canvas,height,width,Jquery,Html,Canvas,Height,Width,当我使用上述qcanvas.css('width',400)时和相应的高度css,画布的实际高度不是我使用jquery函数设置的高度。有人知道我怎么不能使用canvas.width=400并使用Property jquery函数 var qcanvas = $('#canvas'); var canvas = ctl_canvas[0]; var context = canvas.getContext('2d'); qcanvas.css('border', '1px solid black')

当我使用上述
qcanvas.css('width',400)时和相应的高度css,画布的实际高度不是我使用jquery函数设置的高度。有人知道我怎么不能使用
canvas.width=400
并使用Property jquery函数

var qcanvas = $('#canvas');
var canvas = ctl_canvas[0];
var context = canvas.getContext('2d');
qcanvas.css('border', '1px solid black');
qcanvas.css('width', 400);
qcanvas.css('height', 75);

您需要指定画布的
px

.width
.height
属性独立于相同名称的CSS属性

CSS属性设置可见大小,而元素属性设置坐标空间

应直接设置宽度和高度属性:

qcanvas.css('width', '400px');
qcanvas.css('height', '75px');
理想情况下,将CSS属性设置为相同,这是任何情况下的默认值,除非特别更改


这确保了坐标系的一致性。如果它们不相同,浏览器将应用缩放以从一个坐标系映射到另一个坐标系,您还必须应用自己的缩放以将事件坐标映射到像素坐标。

另一种方法是
qcanvas.width(400).height(75)
。设置这两个属性解决了我的问题,还有我以前的问题!:)@BrianGraham不设置CSS属性通常是安全的。
qcanvas.width = 400;
qcanvas.height = 75;