【问题标题】:SVG/VML vs Canvas vs HTML - MobileSVG/VML vs Canvas vs HTML - 移动
【发布时间】:2012-07-29 08:59:47
【问题描述】:

我正在考虑构建一个相当简单的地图(我会说可能有 100 个对象),该地图显示/更改了颜色,并具有显示另一个对象的 onclick(移动)鼠标悬停(桌面)事件。我正在查看以下内容。

  1. 帆布
  2. SVG/VML
  3. JS/HTML

但我的问题是我需要以某种方式支持

  1. IE (7-10)
  2. 火狐
  3. 黑莓 6-7
  4. Windows Mobile 7 (IE9)
  5. iOS
  6. Android 2.3+(无 svg)

而且我似乎找不到可以支持所有这些的单一系统,Android 不支持 SVG,移动浏览器使用画布似乎很慢,IE 7-8 不支持画布,HTML 不支持'不支持“形状”而不使用图像,并且需要交换图像,这在视觉上不是很好... yada yada yada ...

有什么想法我可以为所有这些构建一次吗?我在想画布(移动)和 SVG(桌面)可能会更好。但是在测试移动设备时,画布似乎非常慢。

是否有任何库或系统可以提供帮助?

【问题讨论】:

    标签: html mobile canvas svg


    【解决方案1】:

    而且我似乎找不到可以支持所有这些的单一系统

    没有。

    您将不得不坚持使用可移动的 div 或制作两个版本的应用。对不起。

    Canvas 并不慢,但有些移动设备很慢。 Canvas 将(几乎)总是比 DOM 快,但保持这种方式取决于您。你到底在测试什么代码?

    【讨论】:

      【解决方案2】:
      1. 如果你需要IE7-8那么你必须使用VML,它只支持图形模式。
      2. 如果您考虑 iOS,那么您必须使用 Canvas,它在 iPad 上的速度至少比 SVG 快 10 倍。
      3. Canvas 是仅在默认 Android 2.x 浏览器上可用的图形 mdoe。
      4. 如果您需要浏览器支持的缩放并且地图的大小超过 3000 像素,则 Canvas 无法使用,您必须使用 SVG。

      【讨论】:

        【解决方案3】:

        您可以解决此问题的一种方法是创建一个您的应用程序用来绘制内容的界面,然后有两个不同的渲染器对象,一个用于 IE7~8 使用 SVG,一个使用 Canvas 用于其他所有内容。

        【讨论】:

          猜你喜欢
          • 2011-08-18
          • 2011-11-04
          • 2012-08-30
          • 2012-02-16
          • 2021-07-31
          • 1970-01-01
          • 2013-03-07
          • 2012-04-13
          • 2012-06-26
          相关资源
          最近更新 更多