先说问题原因:
canvas的高宽不能用css里面的width和height来给,而是必须要用canvasDom属性里面的width和height来给,不然实际宽度和绘制操作里面的坐标点不匹配,不管是内联css还是内部css、外部css都会出现这种情况。
错误代码如下
<canvas id='mycanvas' style='width:200px;height:200px;'></canvas>
或者
<canvas id='mycanvas' ></canvas>
<style>
#mycanvas{
width:200px;
height:20px
}
</style>
正确代码如下
<canvas id='mycanvas' width='200px' height='200px' style='background:yellow'></canvas>
当然,如果想动态修改canvas的大小,也必须通过
canvasDom.setAttribute("width","200px") 这种操作来修改,
而不能通过
canvasDom.style.width="200px" 这种方式来修改。