如何在不使用 canvas 的情况下在特定(边界框)位置的图像顶部添加按钮?

How can I add a button on top of an image at a specific (bounding-box) position without using canvas?

我正在尝试在图像顶部添加按钮。在我的后端,我将获得一个边界框 (x, y, image_width, image_height),我想用它来将按钮放置在边界框位置。

我的第一个尝试是使用 canvas -> 绘制一个矩形,然后添加一个事件侦听器来获取按钮。但是这个方法在我看来不是很干净。

有没有其他方法可以不使用 canvas.

....
ctx.fillStyle = "red";
ctx.drawImage(img,0,0); 
ctx.fillRect(x, y, width, height);
canvas.addEventListener('click', function(evt) {
.... 

这是一个 fiddle 应该显示我当前的结果 jsfiddle

编辑:只是一个小的编辑,按钮位置不是恒定的,这取决于我将要得到的边界框。它也不是静态图像而是直播,尽管图像大小 (640x480) 是恒定的。

解决方案jsfiddle

为什么你的后端需要设置按钮位置?这似乎 un-ideal,但也许有充分的理由。后端会提供相对于整个文档或单个元素的坐标吗?按钮是否需要随时间移动?

我的直觉是添加一个 div,将您的图像设置为 div 的背景,然后将按钮放在 div 中的正确位置。你是在使用 vanilla JS 还是像 React 这样的框架?这将影响您放置按钮的方式。