cropper初探

寫在前面:

項目中頭像上傳本身以爲作得很差。是簡單的壓縮上傳,並未作裁剪功能,估摸下一版本應該須要,就提早作好技術儲備。javascript

準備用cropper.js實現css

正文

用法html

htmljava

<div class="img-container">
    <!-- 被裁減的圖片 -->
    <img id="image" src="images/picture.jpg" alt="Picture">
</div>

 jsgit

//取圖片jq對象
var $image = $('#image');
//設置參數,方法
var options = {
        aspectRatio: 1,
        viewMode: 1,
        preview: '.img-preview',
        crop: function (e) {
          //改變時調用(點擊裁剪框/裁剪框大小變化)
          $dataX.val(Math.round(e.x));
          $dataY.val(Math.round(e.y));
          $dataHeight.val(Math.round(e.height));
          $dataWidth.val(Math.round(e.width));
          $dataRotate.val(e.rotate);
          $dataScaleX.val(e.scaleX);
          $dataScaleY.val(e.scaleY);
        }
      };
//也能夠用on設置方法監聽
$image.on({
    ready: function (e) {
      // 初始化調用
      console.log(e.type);
      croppable = true;
    },
    cropstart: function (e) {
      // 裁剪開始(包括點擊新的區域還未開始拖動)
      console.log(e.type, e.action);
    },
    cropmove: function (e) {
      // 裁剪ing(包括點擊新的區域還未開始拖動)
      console.log(e.type, e.action);
    },
    cropend: function (e) {
      // 裁剪結束(包括點擊新的區域還未開始拖動)
      console.log(e.type, e.action);
    },
    crop: function (e) {
      //改變時調用(點擊裁剪框/裁剪框大小變化/放大縮小/等等)
      // on中優先級與options中的一致
      // 順序僅與調用前後有關
      console.log(e.type, e.x, e.y, e.width, e.height, e.rotate, e.scaleX, e.scaleY);
    },
    zoom: function (e) {
      //底部圖片放大縮小
      console.log(e.type, e.ratio);
    }
  }).cropper(options);
//cropper 加載參數,構建編輯器

兼容性看起來能夠github

Browser support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Opera (latest)
  • Edge (latest)
  • Internet Explorer 9+

api

api什麼的上git
https://github.com/fengyuanchen/cropperjs
一個一個來api

填坑

一、剪貼板圓形編輯器

查閱issuesspa

https://github.com/fengyuanchen/cropper/issues/545code

經過css修改出現圓形

.cropper-crop-box, .cropper-view-box {
    border-radius: 50%;
}

.cropper-view-box {
    box-shadow: 0 0 0 1px #39f;
    outline: 0;
}
相關文章
相關標籤/搜索