使用jquery更改画布坐标

使用jquery更改画布坐标,jquery,canvas,Jquery,Canvas,使用jquery,坐标会按大于标准画布大小的比例放大(例如100=>170+)。哪里出错了?更新:在第二个示例中,d是canvas元素,因此您可以设置其宽度和高度。在第一个示例中,d[0]是实际的画布元素,您应该为d[0]设置宽度和高度。 查看工作示例: 旧版: 一切都很顺利,如果在jQuery版本中,insead of: //JQUERY d = $("#gpart"); w = 512; h = 326; d.width(w); d.height(h);

使用jquery,坐标会按大于标准画布大小的比例放大(例如100=>170+)。哪里出错了?

更新:在第二个示例中,d是canvas元素,因此您可以设置其宽度和高度。在第一个示例中,d[0]是实际的画布元素,您应该为d[0]设置宽度和高度。 查看工作示例:

旧版: 一切都很顺利,如果在jQuery版本中,insead of:

//JQUERY
    d = $("#gpart");
    w = 512; h = 326;
    d.width(w);
    d.height(h);
    $ctx = d[0].getContext("2d");
    $ctx.beginPath();
    $ctx.moveTo(100, 0);
    $ctx.lineTo(100, 100);
    $ctx.lineWidth = 1;
    $ctx.strokeStyle = '#bbbbbb';
    $ctx.stroke();
})
//PLAIN
    d = document.getElementById("gpart");
    d.width = 512;
    d.height = 326;
    ctx = d.getContext("2d");
    ctx.beginPath();
    ctx.moveTo(100, 0);
    ctx.lineTo(100, 100);
    ctx.lineWidth = 1;
    ctx.strokeStyle = '#bbbbbb';
    ctx.stroke();
(以像素为单位设置画布的css宽度和高度)

您使用:

d.width(w);
d.height(h);
对于canvas元素,width和height属性指定canvas API使用的坐标系的大小,而CSS width和height指定在页面上绘制的canvas元素的大小

d.attr('width',w);
d.attr('height',h);