【问题标题】:JQuery JCrop - How to set a fixed size selection area?JQuery JCrop - 如何设置固定大小的选择区域?
【发布时间】:2010-09-25 15:40:37
【问题描述】:

我试图弄清楚如何修复 JCrop 下的选择框大小。该文档提到了如何设置初始选择区域,但没有提到如何使其固定大小。有谁知道我怎样才能修复它。提前致谢。

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

【问题讨论】:

  • 我宁愿选择固定的纵横比并调整服务器端的大小。

标签: jquery crop jcrop


【解决方案1】:

使用this example,您应该能够保持大小不变​​。

$(function(){
    $('#jcrop_target').Jcrop({
        onChange: function(){ $(this).setSelect([x, y, x2, y2]); }
    });
});

【讨论】:

  • 通过在更改事件完成触发后强制调整大小来设置固定大小的裁剪区域,这似乎是一种相当老套的方法。
【解决方案2】:

您可以使用 aspectRatio 选项。这将强制进行方形选择

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

或者 aspectRatio: 16/9 会使其宽屏 :-)

【讨论】:

【解决方案3】:

您基本上是在寻找 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]);

});

【讨论】:

  • 我发现this demo 很好地展示了 jCrop 的完整功能集。
  • @Corey Ballou,我们可以使用 JCROP js 添加一个矩形或任何其他形状吗?
【解决方案4】:

您可以将 aspectRatio 设置为十进制值

$('#jcrop_target').Jcrop({
    setSelect: [0,0,150,100],
    aspectRatio: 150/100
});

【讨论】:

    【解决方案5】:

    您好,这可能会有所帮助 -

    <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>
    

    【讨论】:

      【解决方案6】:
      aspectRatio: 1,
      minSize: [ 100, 100 ],
      maxSize: [ 100, 100 ]
      

      【讨论】:

        【解决方案7】:

        这非常容易......

        allowResize: false
        

        例如

        $(function(){
            $("#CropSource").Jcrop({
                aspectRatio: 1,
                setSelect:   [50, 0, 300,300],
                allowResize: false
            });
        });
        

        【讨论】:

          猜你喜欢
          • 2012-09-12
          • 2019-01-20
          • 1970-01-01
          • 2018-03-14
          • 1970-01-01
          • 1970-01-01
          • 2014-05-20
          • 2013-09-22
          • 2017-02-14
          相关资源
          最近更新 更多