javascript - 如何在不使用画布的情况下在特定(边界框)位置的图像顶部添加按钮?
问题描述
我正在尝试在图像顶部添加按钮。从我的后端,我将获得一个边界框(x,y,image_width,image_height),我想用它来将按钮放置在边界框位置。
我的第一次尝试是使用画布-> 绘制一个矩形,然后添加一个事件侦听器来获取按钮。但这种方法在我看来不是很干净。
有没有其他方法可以在不使用画布的情况下实现这一点。
....
ctx.fillStyle = "red";
ctx.drawImage(img,0,0);
ctx.fillRect(x, y, width, height);
canvas.addEventListener('click', function(evt) {
....
这是一个小提琴,它应该显示我当前的结果 jsfiddle
编辑:只是一个小编辑,按钮位置不是恒定的,它取决于我将给出的边界框。它也不是静态图像,而是直播,尽管图像大小 (640x480) 是恒定的。
解决方案 jsfiddle
解决方案
为什么你的后端需要设置按钮位置?这似乎不理想,但也许有一个很好的理由。后端会提供相对于整个文档还是单个元素的坐标?按钮是否需要随时间移动?
我的直觉是添加一个div
,将您的图像设置为 div 的背景,然后将按钮放在 div 中的正确位置。你是在 vanilla JS 还是像 React 这样的框架中工作?这将影响您放置按钮的方式。
推荐阅读
- python - 受cloudflare保护的Scrape API,XHR通过但python请求403
- python - 哪个可以是构建具有复杂行索引的二维表的灵活数据结构?
- python - 如何计算对话中每个角色所说的单词数并将计数存储在字典中?
- ruby - Ruby 未定义方法“to_sentence”
- apache-camel - ActiveMQ 5.x 到 Artemis 的迁移方法
- javascript - 如何在此代码中返回数组“变体”?
- telegram - Telegram 中开放组(不是频道)的 id 范围是多少?
- text - 使用python 3将文件从文本列表(.txt)同名不同扩展名复制到新文件夹
- python - 如何在 Tkinter 中添加最小化按钮?
- python - 当 n=2 时,这个素数生成器代码如何在第一轮循环中工作?