【发布时间】:2015-07-12 04:47:29
【问题描述】:
我正在用 Fabric.js 编写一个脚本来在当前鼠标位置缩放图像。我已经取得了一些进展,但是某处出现了错误。
案例1:将鼠标保持在一点,用鼠标滚轮进行缩放。
结果:完美运行,图像在该特定像素处缩放。
案例 2:在一个位置放大一点(用鼠标滚轮 3-5 倍),然后将鼠标移动到一个新位置并在那里放大。
结果:第一个点工作正常,但移动到另一个点并缩放后,图像位置不正确。
我的代码在这个小提琴中:
https://jsfiddle.net/gauravsoni/y3w0yx2m/1/
我怀疑图片定位逻辑有问题:
imgInstance.set({top:imgInstance.getTop()-newMousY,left:imgInstance.getLeft()-newMousX});
出了什么问题?
【问题讨论】:
-
为什么不使用画布缩放和平移功能?或者你只需要缩放图像对象而不需要其他任何东西?检查这一点:fabricjs.com/kitchensink/#zoom(使用滚动缩放)如果需要,使用画布缩放将允许您在画布中缩放更多对象而无需进行计算。如果你想探索这种可能性,我可以做一个小提琴。
-
@AndreaBogazzi 我需要在鼠标放置的特定位置进行缩放,画布缩放功能只是缩放图像
-
是的,我说的是 FABRICJS 平移到点和缩放到点功能。不是帆布的。我看到你正在使用 fabricjs。
-
@AndreaBogazzi 啊,我明白了。错过了这部分文档。让我试一试
标签: javascript html canvas graphics fabricjs