【问题标题】:Jcrop is returning decimals for the object on callbacksJcrop 在回调中返回对象的小数
【发布时间】:2012-11-14 17:26:35
【问题描述】:

使用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。我期望(如在演示中)它们是一个设置像素。

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

【问题讨论】:

    标签: javascript jcrop


    【解决方案1】:

    这似乎是 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,您只能在回调中获得整数坐标。

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

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

    return [xa, ya, xb, yb];
    

    我不确定这是什么原因(我查看了 github 上的提交 cmets,但没有发现任何问题),但如果你将四舍五入添加回去,你将不会再在回调中获得小数。

    【讨论】:

    猜你喜欢
    • 2016-03-17
    • 2022-01-17
    • 1970-01-01
    • 2020-08-14
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    相关资源
    最近更新 更多