2012-08-10 79 views
1

我有一个单一的画布元素(填充手动制作的像素值,而不是现有的图像),我想在该画布上实现缩放/平移控制,是否有任何现有的库为了做到这一点?如何实现单个画布缩放/平移

非常感谢!

+1

不知道现有的库,但我认为你可以复制到一个分离的画布,然后'.drawImage'只是你想要显示的部分。或者把你的画布放在一个带有“overflow:hidden”的div中,然后通过改变它的css宽度和高度来“放大”画布,通过移动它在div中的位置 – MrOBrian 2012-08-10 21:28:31

回答

4

你可能不会找到一个库,将解决缩放和平移明确,但如果你使用一个普通的帆布库如EaselJSKineticJS很容易实现。

在这种情况下,您可以有一个代表“视口”(您添加到DOM的画布)和另一个代表“绘图”(可能大于视口)的画布的画布。然后,使用缩放因子和翻译在视口画布中绘制“绘图”画布。然后可以通过鼠标交互(例如鼠标滚轮(或捏合触摸设备))并分别点击和拖动来改变缩放和平移值。

如果您使用库,您将最终编写更少的代码和更多可读代码。这些库可以更轻松地跟踪和操作画布中的“对象”。它们也简化了鼠标交互,所以我绝对推荐将它们检出。