项目中头像上传本身以为作得很差。是简单的压缩上传,并未作裁剪功能,估摸下一版本应该须要,就提早作好技术储备。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
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; }