由於jcrop現在正在處理觸摸屏,我想做一個使用它的web應用程序。我有一切工作,但如果我嘗試使設計響應,以便用戶可以在裁剪前看到整個圖像(它的寬度是屏幕的百分比),那麼裁剪的區域將不會與所選的用戶。在調整大小的圖像上進行選擇的座標將不匹配全尺寸圖像上的座標。在響應式圖像上使用jcrop
Jcrop通過使用框尺寸或truesize方法包含類似問題(處理巨大圖像時)的解決方案,但如果圖像的寬度基於百分比而不是像素的給定寬度,則它們都不起作用。
我能想到的唯一解決方案是使用媒體查詢調整圖像大小,並根據屏幕寬度製作3或4個版本,但我寧願堅持基於百分比的調整大小,因爲它看起來好多了。
這是我的電話jcrop:
var jcrop_api, boundx, boundy;
$('#target').Jcrop({
onChange: updatePreview,
onSelect: updatePreview,
aspectRatio: 0.75
},function(){
// Use the API to get the real image size
var bounds = this.getBounds();
boundx = bounds[0];
boundy = bounds[1];
trueSize: [900,600],
// Store the API in the jcrop_api variable
jcrop_api = this;
});
function updatePreview(c){
if (parseInt(c.w) > 0){
var rx = <?echo $width;?>/c.w;
var ry = <?echo $height;?>/c.h;
$('#preview').css({
width: Math.round(rx * boundx) + 'px',
height: Math.round(ry * boundy) + 'px',
marginLeft: '-' + Math.round(rx * c.x) + 'px',
marginTop: '-' + Math.round(ry * c.y) + 'px'
});
}
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
};
我很難搞清楚如何讓圖像響應。一旦我打電話給Jcrop,它就會停止響應我。 – Dex