2012-11-14 95 views
3

使用jcrop庫,我無法追查爲什麼回調對象的回調可以並且有時包含小數。我期望所有的x1,x2,y1,y2,寬度和高度都是整數。Jcrop返回小數的回調對象

我對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。我期待(如演示的),他們是一組像素。

有什麼想法?
有什麼想法?

回答

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,則只會在回調中獲得整數座標。

進一步觀察,它看起來像在版本0.9.10中的第656行jquery.Jcrop.js中刪除了座標的舍入。返回去的:

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

return [xa, ya, xb, yb]; 

我不知道的原因,這(我看遍了GitHub上,但沒有提交評論我跳了出來),但如果你添加在回調中你將不會再獲得小數。

+0

謝謝。有趣。 – pghtech

+1

看起來這可能是https://github.com/tapmodo/Jcrop/issues/24的原因 –