javascript - 为什么我的文本框没有显示在我的 Canvas 元素上?

标签 javascript html raphael

我想使用 Raphael.js 并为我的站点创建一些漂亮的图表/SVG 图形。我希望用户能够输入通常通过 <input type="text"> 进行的文本内容普通 html 中的元素。

无论如何,我可以在 <canvas> 之上使用这个元素吗?元素,这样我就可以让我的用户以这种方式输入文本,还是我必须通过监听击键并将字符绘制到元素上来自己滚动?

改写问题

如果我这样做,为什么我看不到文本字段:

<canvas style="background-color:blue;height:100px;width:100px>
    <input type="text" style="background-color:white;z-index:101" />
</canvas>

如果这不可能,有什么替代方案?

非常感谢

最佳答案

对于不理解 canvas 元素的旧浏览器,需要一些方法来回退到替代内容(例如静态图像或文本“获取支持 canvas 的浏览器”)。 canvas 元素的子元素就是为此指定的。

但是,您可以使用 position:absolute 将输入定位在 Canvas 上(相对或静态):

<canvas style="background-color:blue;height:100px;width:100px">
</canvas>
<input type="text" style="z-index:101; position:absolute; top:10px; left:10px;"/>

Here's a live demo .

关于javascript - 为什么我的文本框没有显示在我的 Canvas 元素上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538669/

相关文章:

javascript - 具有三个 handle 的贝塞尔曲线错放控制点

javascript - 动态生成的 aria-descriptedby 值是否仍然可以访问?

javascript - 如果浏览器是 Internet Explorer,则运行脚本

html - 使侧导航与内容具有相同的高度

html - 将图像显示更改为内联

jquery - onClick 仅适用于表格中的第一个按钮

javascript - 为什么我在 Raphael.js 饼图演示中看不到颜色?

javascript - 如何使用Firebase存储url作为react-native图像的源

javascript - 使用正则表达式提取值

javascript - 使用 Raphael 调用 requestAnimationFrame 是否会影响性能?