JQuery JCrop - Как установить область выбора фиксированного размера? - PullRequest
28 голосов
/ 06 декабря 2008

Я пытаюсь выяснить, как исправить размер поля выбора в JCrop. В документации упоминается, как установить начальную область выбора, но не как сделать ее фиксированным. Кто-нибудь знает, как я мог это исправить. Заранее спасибо.

http://deepliquid.com/content/Jcrop_Manual.html

Ответы [ 7 ]

36 голосов
/ 20 января 2010

Вы в основном ищете раздел API. Я сам широко использовал этот плагин, и я точно знаю, что вы ищете:

var api;
var cropWidth = 100;
var cropHeight = 100;

$(window).load(function() {

    // set default options
    var opt = {};

    // if height and width must be exact, dont allow resizing
    opt.allowResize = false;
    opt.allowSelect = false;

    // initialize jcrop
    api = $.Jcrop('#objectId', opt);

    // set the selection area [left, top, width, height]
    api.animateTo([0,0,cropWidth,cropHeight]);

    // you can also set selection area without the fancy animation
    api.setSelect([0,0,cropWidth,cropHeight]);

});
14 голосов
/ 09 февраля 2010

вы можете установить aspectRatio как десятичное значение

$('#jcrop_target').Jcrop({
    setSelect: [0,0,150,100],
    aspectRatio: 150/100
});
13 голосов
/ 31 июля 2009

Вы можете использовать параметр aspectRatio. Это заставит выбор квадрата

$(function(){
    $('#cropbox').Jcrop({
        aspectRatio: 1
    });
});

Или aspectRatio: 16/9 сделает его более широким: -)

6 голосов
/ 06 декабря 2008

Используя в этом примере , вы сможете сохранить размер фиксированным.

$(function(){
    $('#jcrop_target').Jcrop({
        onChange: function(){ $(this).setSelect([x, y, x2, y2]); }
    });
});
5 голосов
/ 08 июля 2012
aspectRatio: 1,
minSize: [ 100, 100 ],
maxSize: [ 100, 100 ]
4 голосов
/ 22 мая 2013

Это удивительно легко ...

allowResize: false

, например

$(function(){
    $("#CropSource").Jcrop({
        aspectRatio: 1,
        setSelect:   [50, 0, 300,300],
        allowResize: false
    });
});
1 голос
/ 09 марта 2011

Привет, это может быть полезно -

<script>
$(window).load(function() {
    var jcrop_api;
    var i, ac;

    initJcrop();

    function initJcrop() {
            jcrop_api = $.Jcrop('#imgCrop', {
            onSelect: storeCoords,
            onChange: storeCoords
            });
            jcrop_api.setOptions({ aspectRatio: 1/ 1 });
            jcrop_api.setOptions({
            minSize: [180, 180],
            maxSize: [180, 250]
        });
        jcrop_api.setSelect([140, 180, 160, 180]);
    };
    function storeCoords(c) {
    jQuery('#X').val(c.x);
    jQuery('#Y').val(c.y);
    jQuery('#W').val(c.w);
    jQuery('#H').val(c.h);
    };        
});
</script>
...