Jcrop在回调时返回对象的小数

时间:2012-11-14 17:26:36

标签: javascript jcrop

使用jcrop库,我无法找到回调对象上的返回对象为什么有时包含小数的原因。我希望所有x1,x2,y1,y2,宽度和高度都是整数。

我对jcrop的初始化是:

$('img.jsEditable').Jcrop({
    bgColor: 'black',
    bgOpacity: .4,
    setSelect: [0, 0, crop_width, crop_height],
    aspectRatio: 1,
    onSelect: saveCoordinates,
    minSize: [crop_width, crop_height],
    maxSize: [400, 400]
  });

其中crop_width和crop_height只是我在其他地方设置的变量,恰好是150.我期待(就像在演示中一样)它们是一个设定的像素。

有什么想法吗? 有什么想法吗?

1 个答案:

答案 0 :(得分:4)

这似乎是Jcrop 0.9.9和0.9.10之间的差异。如果您从网站http://deepliquid.com/projects/Jcrop/demos.php?demo=handler转到演示并拖动框,则只会在回调中获得整数。该演示不是最新的,并且正在使用Jcrop 0.9.9。

但是,如果您下载Jcrop,则会获得0.9.10版本。下载中包含的演示也使用了Jcrop 0.9.10,并且您在回调中获得了小数。如果您在演示中交换0.9.10版并使用0.9.9而不是在回调中获得整数坐标。

进一步研究,看起来在第656行的jquery.Jcrop.js中的版本0.9.10中,删除了坐标的舍入。回报来自:

return [ Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb) ];

return [xa, ya, xb, yb];

我不确定这个的原因(我查看了github上的提交注释,但没有任何内容跳出来)但是如果你再添加舍入,你将不会在回调中得到小数。< / p>