在缩放和旋转结构后,在画布内移动对象

时间:2015-09-07 15:14:28

标签: javascript html5 canvas fabricjs

我可以在旋转/缩放时在画布边界内移动对象。请参阅以下小提琴 - http://jsfiddle.net/JtRhX/33/

问题步骤:

  1. 缩放图像>比帆布的宽度/高度。
  2. 问题1:尝试将obj向任意方向移动1px,obj将立即转到对象的另一端:移动事件
  3. 问题2:缩放图像后,obj的移动也是相反的。
  4. 我使用以下代码检查他的边框定位在顶部,类似于bot

    if(obj.getBoundingRect().top < 0 || obj.getBoundingRect().left < 0){
        obj.top = Math.max(obj.top, obj.top-obj.getBoundingRect().top);
        obj.left = Math.max(obj.left, obj.left-obj.getBoundingRect().left);
    }
    

1 个答案:

答案 0 :(得分:0)

小提琴代码中的评论

  

//如果对象太大则忽略

在这种情况下,您似乎希望允许越过画布的边缘。

如果是这样,您只需更改此行:

if(obj.currentHeight > obj.canvas.height || obj.currentWidth > obj.canvas.width) {

这个:

if(obj.getBoundingRect().height > canvas.height || obj.getBoundingRect().width > obj.canvas.width) {

请注意obj.currentHeightobj.currentWidth 未定义

希望它有所帮助!