首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >画布元素内的输入表单

画布元素内的输入表单
EN

Stack Overflow用户
提问于 2012-02-23 09:16:07
回答 5查看 28.8K关注 0票数 14

我想知道是否有任何方法可以通过javascript在canvas元素中获得用户的输入,最好是文本框(或者用户可以看到他正在写的内容的任何地方)。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-23 10:16:28

使用绝对定位将文本框放置在画布元素的顶部。

我建议的布局是这样的:

代码语言:javascript
复制
<div style="position:relative;width:800px;height:800px">
    <canvas width="800" height="800"></canvas>
    <input type="text" style="position:absolute;left:100px;top:300px;width:600px; etc...." />
</div>

有了这个,你就有了相对定位的<div> to base,我可能还会添加一个模式背景……

希望这能对-ck有所帮助

票数 14
EN

Stack Overflow用户

发布于 2012-12-15 05:15:39

这个问题有点老了,但我想提供一个绝对定位的替代方案。你可以设置背景图像(大概是一个比文本框大的div )。下面是一个例子:

HTML:

代码语言:javascript
复制
...<canvas id="canvas"></canvas> <div id="backDrop">...[your textbox]</div>...

Javascript:

代码语言:javascript
复制
$('#backDrop').css('background-image', 'url(' + document.getElementById('canvas').toDataURL() + ')');

下面是一个jsfiddle示例。

正如here所指出的,这实际上是在您设置background-image属性时拍摄画布的快照。设置背景图像后对画布所做的任何更改都不会反映出来(除非您重新设置了它),但在大多数情况下,这可能是您想要的。

票数 8
EN

Stack Overflow用户

发布于 2014-07-12 05:23:28

有一个画布输入库。它不使用任何DOM元素,但纯粹是在canvas上构建的。你可以在http://goldfirestudios.com/blog/108/CanvasInput-HTML5-Canvas-Text-Input上阅读更多关于它的信息并下载它。它是开源的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9405772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档