我正在使用HTML5画布制作一个文本编辑器,通过它我可以更新文本、更改字体、移动字体和移动背景图像。
我需要关于在画布中移动文本的帮助-如何使用上下文和鼠标移动事件来完成?
发布于 2012-09-15 12:13:02
画布的w3c草案本身建议不要这样做。您可以在画布最佳实践中阅读这篇文章
作者应避免使用画布元素实现文本编辑控件。这样做有很多缺点..。这是一项巨大的工作,我们强烈鼓励作者避免使用输入元素、textarea元素或contenteditable属性来避免这样做。
如果您需要一个文本编辑器,您可以查看其他免费的计划,比如CodeMirror。
发布于 2012-09-15 10:50:06
编辑:这个答案是在2012年写的。自那以后,现代网络浏览器已经走了很长一段路,答案不再成立。Google和Visual代码都使用基于<canvas>
的编辑。把这个答案留在这里只是为了历史的目的。这里有一篇关于黑客新闻的好帖子。
不推荐使用HTML5 <canvas>
进行文本编辑(请参阅上面的回答)。Mozilla (创作者)是一次尝试,直到它被关闭,开发转移到非基于<canvas>
的ACE编辑器上:
https://mozillalabs.com/en-US/skywriter/
http://ace.ajax.org/
Atom编辑器选择非画布方法,最终确定在React.js上加速DOM更新过程:
http://blog.atom.io/2014/07/02/moving-atom-to-react.html
然而,基于<canvas>
的编辑是可能的,即使不推荐,请参见下面的注释和jeromeyers的评论:
http://earwicker.com/carota/
. 另外,在基于DOM的文本编辑可能无法工作时,这篇博客文章包含了一些想法。
https://stackoverflow.com/questions/12425111
复制相似问题