我正在使用 Cropper.js 在我的网站上裁剪照片。我已经按照 readme 页面中的所有步骤进行了操作,但是我遇到了一些错误。我得到的第一个错误是 未捕获的 ReferenceError: Cropper is not defined 。所以我添加了
var Cropper = window.Cropper 语句。当我重新加载页面时,我遇到了另一个错误 Uncaught TypeError: Cropper is not a constructor 。但这样只有他们将选项传递给 Cropper 构造函数,无法弄清楚出了什么问题

<!doctype html>
<html lang="en">
<head>
  <title>Cropper</title>
  <link rel="stylesheet" href="../dist/cropper.css">
  <style>
    img {
      max-width: 100%;
    }
  </style>
</head>
<body>

  <div>
    <img id="image" src="wallpaper.jpg">
  </div>

  <div id="preview" ></div>

  <!-- Scripts -->
  <script src="../assets/js/jquery.min.js"></script>
  <script src="../dist/cropper.js"></script>
  <script>
      var Cropper = window.Cropper;
      var image = document.getElementById('image');
      var cropper = new Cropper(image, {
        aspectRatio: 16 / 9,
        crop: function(e) {
          console.log(e.detail.x);
          console.log(e.detail.y);
          console.log(e.detail.width);
          console.log(e.detail.height);
          console.log(e.detail.rotate);
          console.log(e.detail.scaleX);
          console.log(e.detail.scaleY);
        }
      });
  </script>
</body>
</html>

最佳答案

Cropper(不要与 Cropper.js 混淆)旨在与 jQuery 一起使用,因此您需要通过这样的 jQuery 对象使用它:

  var image = $('#image');
  var cropper = image.cropper({
    aspectRatio: 16 / 9,
    crop: function(e) {
      console.log(e.x);
      console.log(e.y);
      console.log(e.width);
      console.log(e.height);
      console.log(e.rotate);
      console.log(e.scaleX);
      console.log(e.scaleY);
    }
  });

$('#image') 与 document.getElementById('image') 几乎相同,但它将图像元素作为 jQuery 对象返回,其中包含许多有用的方法。许多插件(例如Cropper.js)将自己的方法添加到jQuery对象中,以使其易于使用。

关于javascript - 初始化cropper.js 时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37474562/

10-08 22:37