HTML5 Canvas:绘制比窗口大的区域

时间:2012-10-30 08:36:48

标签: html5-canvas

我有一个可以拖动的HTML Canvas上绘制地图的全屏视口。

我尝试了两种实现拖动动画的实现。

首先,我使用画布显示窗口的宽度和高度,在用户拖动地图时翻译每个mousemove事件,翻译绘制的元素。但是,即使使用requestAnimationFrame,firefox特别是非常生涩,低FPS。

相反,我尝试在用户拖动时移动canvas元素。换句话说,在画布上画出窗口宽度和高度的3倍,居中,允许在任何方向上完全拖动,并在每次用户完成拖动时重新绘制。这适用于chrome,但IE和firefox只绘制了画布的左上象限。 (因此,只有当画布向右下方拖动时才能看到任何绘图。)

有人能建议一种检测第二种方法何时不能使用的好方法吗?使用第二种方法,IE和Firefox $('canvas').attr("width")都将画布宽度返回为窗口高度的3倍,因此这不是一个选项。

我能想到的唯一选择是在每个浏览器上手动测试第二种方法,并创建一个查找数组,以便代码知道何时回退到第一种方法。

也许有人知道更好的方法来处理这一切?

由于

0 个答案:

没有答案