これが私が事前に選択している方法です(この質問/回答のおかげでImageAreaSelect: aspspectRatio に関して可能な最大のサムネイルを事前に選択します)
var thwidth = $('#thumbnail').width();
var thheight = $('#thumbnail').height();
var aspectRatio = <?php echo $thumb_height/$thumb_width;?>;
var selWidth = 640;
var photo = $('#thumbnail'),
photoWidth = parseInt($('#thumbnail').width()),
maxWidth = Math.min(selWidth, photoWidth),
maxHeight = maxWidth * aspectRatio,
yTop = parseInt(photo.height()) / 2 - maxHeight / 2;
var thumbsel = $('#thumbnail').imgAreaSelect({
x1: photoWidth / 2 - maxWidth / 2,
y1: yTop,
x2: (photoWidth / 2 - maxWidth / 2) + maxWidth,
y2: yTop + maxHeight,
aspectRatio: '1:<?php echo $thumb_height/$thumb_width;?>',
onSelectStart: function(){
$('#filters li').first().find('a').click();
},
onSelectChange: preview,
onInit: preview,
handles: true,
resizable:true,
show:true
});
しかしプレビューメソッドはInitにロードされていないようです。ユーザーは、現在の選択を再選択、サイズ変更、または少なくともドラッグして、プレビューできるようにする必要があります。
プレビュー方法(サイトから取得)
function preview(img, selection) {
$('#filters li').first().find('a').click();
var scaleX = <?php echo $thumb_width;?> / selection.width;
var scaleY = <?php echo $thumb_height;?> / selection.height;
$('#uploaded_file').css({
width: Math.round(scaleX * <?php echo $current_large_image_width;?>) + 'px',
height: Math.round(scaleY * <?php echo $current_large_image_height;?>) + 'px',
marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',
marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
});
$('#x1').val(selection.x1);
$('#y1').val(selection.y1);
$('#x2').val(selection.x2);
$('#y2').val(selection.y2);
$('#w').val(selection.width);
$('#h').val(selection.height);
}
私はinit関数でこれを試しました:
$('.imgareaselect-selection').mouseup();
しかしなかなか成果が出ず…
しかし、解決策は、ドラッグされた選択を再生成することか、それに似たものになると思いますか?
-編集-
このスクリーンショットをチェックアウトする場合:
事前選択が正常に行われたことがわかりますが、事前選択は行われませんでした..
選択範囲をクリック/移動するだけで、プレビューされます
したがって、質問は次のようになります。
変更された選択を再現するにはどうすればよいですか? プラグイン メソッドまたは DOM イベント経由
-EDIT2-
さて、私はこの解決策を思いついたのですが、プラグインの初期化後にプレビュー機能を実行してみませんか?
var my_options = {
x1 : photoWidth / 2 - maxWidth / 2,
y1 : yTop,
width : (photoWidth / 2 - maxWidth / 2) + maxWidth - photoWidth / 2 - maxWidth / 2,
height : yTop + maxHeight - yTop
}
preview('',my_options);