画布元素的 OnClick 事件处理程序
使用画布元素时,将事件处理程序分配给绘制的对象可能是一个挑战。与其他 HTML 元素不同,canvas 元素没有对单击事件的本机支持。
解决方案:DOM 事件和数学
向画布添加单击事件处理程序元素,您需要做两件事:
代码示例
以下是实现这些步骤的示例代码:
// Get the canvas element and its context var elem = document.getElementById('myCanvas'); var context = elem.getContext('2d'); // Define an array to store element information var elements = []; // Add a click event listener to the canvas elem.addEventListener('click', function(event) { // Calculate the mouse click position relative to the canvas var x = event.pageX - elem.offsetLeft; var y = event.pageY - elem.offsetTop; // Loop through the elements and check for collision elements.forEach(function(element) { if (y > element.top && y < element.top + element.height && x > element.left && x < element.left + element.width) { alert('clicked an element'); } }); }); // Add an element to the array elements.push({ colour: '#05EFFF', width: 150, height: 100, top: 20, left: 15 }); // Render the element context.fillStyle = element.colour; context.fillRect(element.left, element.top, element.width, element.height);
为什么您的尝试没有成功
以上是如何向画布元素添加点击事件处理程序?的详细内容。更多信息请关注PHP中文网其他相关文章!