如何使用Raphael在MS Paint Text框中动态添加文本?

时间:2013-03-31 13:30:02

标签: jquery svg raphael

我想像在MS Paint中那样复制在页面中编写文本的相同用户体验。就像我们点击raphael页面时一样,应该出现一个固定长度的框,并提供输入文本的空间,该文本应该动态添加到rahael页面。当文本长度增加而不是首选大小时,它应该与MS Paint相同。

1 个答案:

答案 0 :(得分:0)

第一个解决方案:为Raphael的容器创建.on('click')事件处理程序,该容器将在点击位置创建一个textarea。通过CSS规则设置此textarea样式 - 绝对定位到点击位置;设置宽度 - 高度;删除边框,制作透明背景,以实现您直接在Raphael画布上键入文本的错觉。然后将关键监听器附加到textarea(如果需要使用Enter键换取新的换行符,请在“Ctrl + Enter”上收听“Enter”)。 Enter键将创建Raphael.Text元素。

第二个解决方案:点击画布后 - 创建一个隐藏的textarea(设置CSS {position:absolute; left:-9999px}来隐藏它,不要使用{display:none})。还可以在点击位置创建Raphael.Text对象。然后在您输入时,文本将添加到隐藏的textarea - 在每个按键上读取其值并更新Raphael的文本对象。