2012-12-20 36 views
1

我在构建Web UI。它是完全动态的,并且不断移动。
内容通过使用jquery的ajax()不断变化。
界面首先使用Raphael库在html5 SVG中构建。 它太慢了。
我想过使用画布库(如paper.js/Caat.js/etc ...) 但我无法在画布内实现HTML代码(如SVG中的<foreign object>标记)
我不能在画布上方放置浮动div,因为内容在内容上移动。
任何想法如何解决这个问题? 如何在html5画布中实现html代码?在html5画布中实现html

+0

为什么不使用HTML和CSS构建UI并在必要时进行更新?这简单得多。 – Licson

+0

我的系统看起来像这样:[link](http://labs.hyperandroid.com/static/CAAT-Samples/demos/demo11/circles.html)但更复杂。我不认为这是用html构建它的最佳解决方案 –

+0

那么你应该使用一些canvas UI库,比如canui? – Licson

回答

2

看看html2canvas,它在Canvas中呈现DOM。

我正在构建一个Web UI。

我要试试并拯救我们既麻烦,让你知道在画布上构建一个完整的UI是一个非常糟糕的主意。我建议不要这样做。重。画布规格也是如此。 As the spec says:

作者应避免使用canvas元素实现文本编辑控件。这样做有很多缺点:

  • 鼠标放置的脱字符必须重新实现。
  • 插入符号的键盘移动必须重新实现(可能跨行,用于多行文本输入)。
  • 必须执行文本字段的滚动(水平方向为长行,垂直方向为多行输入)。
  • 必须重新实现复制和粘贴等本机功能。
  • 必须重新实现拼写检查等本机功能。
  • 必须重新实现拖放等本机功能。
  • 必须重新实现页面范围文本搜索等原生特性。
  • 必须重新实现特定于用户的本地功能,例如自定义文本服务。这几乎是不可能的,因为每个用户可能安装了不同的服务,并且存在无限可能的这种服务。
  • 必须重新实现双向文本编辑。
  • 对于多行文本编辑,必须为所有相关语言实现换行。
  • 文本选择必须重新实现。
  • 拖动双向文本选择必须重新实现。
  • 必须重新实现平台本机键盘快捷键。
  • 必须重新实现平台本机输入法编辑器(IME)。
  • 撤消和重做功能必须重新实现。
  • 辅助功能,如插入后的放大倍数或选择必须重新实现。

实现这些各种各样的帆布事情是噩梦。对于你和你的用户。

+0

所以浮动div是最好的解决方案吗? –