【问题标题】:fengyuanchen cropper how to set up dynamic fixed crop boxfengyuanchencropper 如何设置动态固定裁剪框
【发布时间】:2015-10-03 03:31:36
【问题描述】:

我正在使用crop tool from fengyuanchen,它具有很棒的功能。我正在尝试制作具有动态尺寸的固定裁剪框。

但我目前只在如何弄清楚如何使其达到一定大小时陷入困境。

我尝试了以下方法:

$(function() {

    $('.img-container > img').cropper({
      aspectRatio: 16 / 9,
      autoCropArea: 0.65,
      strict: false,
      guides: false,
      highlight: false,
      dragCrop: false,
      cropBoxMovable: false,
      cropBoxResizable: false,
      setCropBoxData('1600', '1200')
    });

});

但是setCropBoxData 对我不起作用。我做错了什么?

更新

这应该是为实际裁剪框设置固定宽度的正确语法,但我仍然没有得到任何结果:

$(function() {
  var $toCrop = $('.img-container > img');

  $toCrop.cropper({
    aspectRatio: 16 / 9,
    autoCropArea: true,
    strict: false,
    guides: false,
    highlight: true,
    dragCrop: false,
    cropBoxMovable: false,
    cropBoxResizable: false,
    built: function () {
      $toCrop.cropper("setCropBoxData", { width: "100", height: "50" });
    }
  });
});

【问题讨论】:

  • 检查您的浏览器控制台:您发布的代码在语法上不正确,您会看到一个错误。

标签: javascript jquery crop


【解决方案1】:

我终于找到了解决办法。我的错误是我将string 而不是number 作为参数传递给setCropBoxData 函数。

下面是正确的语法:

$(function() {
  var $toCrop = $('.img-container > img');

  $toCrop.cropper({
    aspectRatio: 16 / 9,
    autoCropArea: 0,
    strict: false,
    guides: false,
    highlight: true,
    dragCrop: false,
    cropBoxMovable: false,
    cropBoxResizable: false,
    built: function () {
      // Width and Height params are number types instead of string
      $toCrop.cropper("setCropBoxData", { width: 1600, height: 800 });
    }
  });
});

【讨论】:

    【解决方案2】:

    返回并重新阅读文档的"Methods" 部分。这向您展示了如何调用这样的函数。另请注意,“setCropBoxData”需要一个具有“top”、“left”、“width”和“height”属性的对象:

    $(function() {
        var $img = $('.img-container > img');
        $img.cropper({
          aspectRatio: 16 / 9,
          autoCropArea: 0.65,
          strict: false,
          guides: false,
          highlight: false,
          dragCrop: false,
          cropBoxMovable: false,
          cropBoxResizable: false
        });
        $img.cropper("setCropBoxData", { width: "1600", height: "1200" });
    });
    

    【讨论】:

    • 我现在没有任何错误,但是cropbox仍然没有反应。对我来说还是一样。
    • 看起来“setCropBoxData”需要一个对象,而不仅仅是一对数字。我会更新答案。
    • 谢谢,但仍然没有积极的变化,我会尝试做一个 jsfiddle
    • @JeroenBellemans 除非你有一个对 CORS 友好的图像主机,否则可能很难做出调整
    • 感谢您的帮助!我找到了解决办法
    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多