var canvas=document.getElementById("demo");
var cxt=canvas.getContext("2d");
function circle()
{
canvas.onmousedown=function(evt)
{
cxt.lineWidth=1;
evt=window.event||evt;
var startX=evt.pageX-this.offsetLeft;
var startY=evt.pageY-this.offsetTop;
}
canvas.onmousemove=function(evt)
{
var x=evt.pageX-this.offsetLeft;
var y=evt.pageY-this.offsetTop;
cxt.strokeStyle="rgb(180,0,0)";
cxt.beginPath();
var radii=Math.sqrt((startX-x)*(startX-x)+(startY-y)*(startY-y));
cxt.arc(startX,startY,radii,0,Math.PI*2,false);
cxt.stroke();
cxt.closePath();
}
}
可以参考一下:http://blog.csdn.net/qq_19558705/article/details/50519952
画实心圆还是空心圆?
是在canvas中没显示么?
注意startX和startY作用域,而且你也没有执行circle绑定鼠标事件
<canvas id="demo" width="500" height="400"></canvas>
<script>
var canvas = document.getElementById("demo");
var cxt = canvas.getContext("2d");
function circle() {
var startX,startY/////////
canvas.onmousedown = function (evt) {
cxt.lineWidth = 1;
evt = window.event || evt;
/*var*/ startX = evt.pageX - this.offsetLeft;
/*var*/ startY = evt.pageY - this.offsetTop;
}
canvas.onmousemove = function (evt) {
var x = evt.pageX - this.offsetLeft;
var y = evt.pageY - this.offsetTop;
cxt.strokeStyle = "rgb(180,0,0)";
cxt.beginPath();
var radii = Math.sqrt((startX - x) * (startX - x) + (startY - y) * (startY - y));
cxt.arc(startX, startY, radii, 0, Math.PI * 2, false);
cxt.stroke();
cxt.closePath();
}
}
circle()///////////////
</script>