HTML5 Canvas鼠标与键盘事件
演示html5 canvas鼠标事件,获取canvas对象上的鼠标坐标,演示键盘事件
通过键盘控制canvas上对象移动。
canvas对象支持所有的javascript的鼠标事件,包括鼠标点击(mouseclick), 鼠标按下
(mouse down), 鼠标抬起(mouse up),鼠标移动( mouse move)
对canvas添加鼠标事件方式有两种,一种方式是通过api来完成:
// mouse event
canvas.addeventlistener("mousedown",domousedown,false);
canvas.addeventlistener('mousemove', domousemove,false);
canvas.addeventlistener('mouseup', domouseup, false);
另外一种方式在javascript中称为反模式:
canvas.onmousedown = function(e){
}
canvas.onmouseup = function(e){
}
canvas.onmousemove = function(e){
}
获取鼠标在canvas对象上坐标:
由于canvas上鼠标事件中不能直接获取鼠标在canvas的坐标,所获取的都是基于整个
屏幕的坐标。所以通过鼠标事件e.pagex与e.pagey来获取鼠标位置,然后通过
canvas. getboundingclientrect()来获取canvas对象相对屏幕的相对位置,通过计算
得到鼠标在canvas的坐标,代码如下:
function getpointoncanvas(canvas, x, y) {
var bbox =canvas.getboundingclientrect();
return { x: x- bbox.left *(canvas.width / bbox.width),
y:y - bbox.top * (canvas.height / bbox.height)
};
}