html5 canvas获取坐标系,【实例】【html5】在canvas获取鼠标的坐标

#canvas {

border: thin solid blue;

}

var canvas = document.getElementById("canvas");

var context = canvas.getContext("2d");

function getLocation(x, y) {

var bbox = canvas.getBoundingClientRect();

return {

x: (x - bbox.left) * (canvas.width / bbox.width),

y: (y - bbox.top) * (canvas.height / bbox.height)

/*

* 此处不用下面两行是为了防止使用CSS和JS改变了canvas的高宽之后是表面积拉大而实际

* 显示像素不变而造成的坐标获取不准的情况

x: (x - bbox.left),

y: (y - bbox.top)

*/

};

}

function drawHorizontalLine(y) {

context.beginPath();

context.moveTo(0, y);

context.lineTo(canvas.width, y);

context.stroke();

context.closePath();

}

function drawVerticalLine(x) {

context.beginPath();

context.moveTo(x, 0);

context.lineTo(x, canvas.height);

context.stroke();

context.closePath();

}

canvas.onmousemove = function (e) {

var location = getLocation(e.clientX, e.clientY);

var message = document.getElementById("message");

message.innerHTML = "x=" + location.x + " ,y=" + location.y;

context.clearRect(0, 0, canvas.width, canvas.height);

drawHorizontalLine(location.y);

drawVerticalLine(location.x);

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值