如何在 HTML5 画布元素中添加简单的 onClick 事件处理程序?
画布元素中绘制的元素没有表示形式。它们唯一的表示形式是它们使用的像素及其颜色。绘制到一个画布元素意味着以立即模式绘制位图。要获得画布元素(形状)上的点击事件,你需要捕获画布 HTML 元素上的点击事件并确定点击的是哪个元素。这需要存储元素的宽度和高度。
若要向画布元素添加点击事件,请使用以下给出的代码
canvas.addEventListener('click', function() { }, false);
示例
若要确定单击了哪个元素,请使用以下代码片段 -
var e = document.getElementById('myCanvas'), elemLeft = e.offsetLeft, elemTop = e.offsetTop, context = e.getContext('2d'), elements = []; // event listener for click event e.addEventListener('click', function(event) { var xVal = event.pageX - elemLeft, yVal = event.pageY - elemTop; console.log(xVal, yVal); elements.forEach(function(ele) { if (yVal > ele.top && yVal < ele.top + ele.height && xVal > ele.left && xVal < ele.left + ele.width) { alert(‘element clicked'); } }); }, false); elements.push({ colour: '#1C2128’, width: 250, height: 200, top: 30, left: 20 }); elements.forEach(function(ele) { context.fillStyle = element.colour; context.fillRect(ele.left, ele.top, ele.width, ele.height); });
广告