 
						注:请在移动端用手势查看缩放效果,PC端无法缩放
移动端头像上传,支撑头像预览和放大缩小平移,内置上传至后端请求方法。
安装
| 1 | npm install mavatar | 
引入
| 1 | import Mavatar from 'mavatar' | 
创建html的dom标签并定义id名,在dom加载完成的周期里,如 react的(componentDidMount), vue的(mounted)中进行实例化。也可以在纯js中使用,引入mavatar.js即可。
React中使用示例
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |  import Mavatar from 'mavatar' let avatar;export defaultclass App extends Component {  componentDidMount() {    avatar = newMavatar({      el: '#avatar',      backgroundColor: '#ff6633'    });  }  handleClip = (e) => {    avatar.imageClipper((dataurl) => {      console.log(dataurl);    });  }  handleReset = (e) => {    avatar.resetImage();  }  render() {    return(      <div>        <div id="avatar"/>        <button onClick={this.handleClip}>裁剪</button>        <button onClick={this.handleReset}>重置</button>      </div>    );  }} | 
Vue中使用示例
在vue中使用可以直接使用该vue组件vue-imageClip
普通js中使用示例
下载仓库中src/lib/mavatar.js保存到本地并引入
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <!DOCTYPE html><html><head><metacharset="UTF-8"><title>Mavatar</title>   <scriptsrc="lib/mavatar.js"></script></head><body><body><!-- dom --><div>  <divid="avatar"></div>  <buttononclick="clip()">裁剪</button>  <buttononclick="reset()">重置</button></div><!-- script --><script>  var avatar = new Mavatar({el: '#avatar',backgroundColor: '#fff'});  function clip() {    avatar.imageClipper(function (data) {      alert('裁剪成功,生成的图片已覆盖在上传框内');      console.log(data);      //  将图片上传至后台  avatar.upload({url: '/',name: 'avatar',data: {userName: 'hzy0913', info: 'someInfo'},success: function (data) {console.log(data)},error: function (error) {console.log(error)}  });    })  }  function reset() {    avatar.resetImage();  }</script></body></html> | 
裁剪: 图片裁剪方法,回调中可以获取裁剪完成base64
| 1 2 3 | avatar.imageClipper(function(dataurl) {    console.log(dataurl);}); | 
重置: 重置头像上传方法, 可以清空已上传的图片
| 1 | avatar.resetImage() | 
获取头像上传前的信息(大小,尺寸等)。
| 1 | const flieInfo = avatar.getfileInfo() | 
获取头像完成裁剪生成的base64(注意!使用时确保图片已完成裁剪,图片裁剪为异步方法)。
| 1 | const dataUrl = avatar.getDataUrl() | 
图片上传至服务器的内置ajax方法(使用multipart/form-data类型模拟form格式进行上传)
| 1 2 3 4 5 6 7 8 9 10 11 | avatar.upload({    name: 'avatar',    data: {userName: 'hzy0913', info: 'someInfo'},    success: function(data) {        console.log(data)    },    error: function(error) {        console.log(error)    }}); | 
| 参数 | 类型 | 描述 | 
|---|---|---|
| url | string | 必传,上传的请求地址 | 
| name | string | 必传,图片上传的请求name | 
| data | object | 发送到服务器的其他数据,选填 | 
| success | function | 上传成功的回调,选填 | 
| error | function | 上传失败的回调,选填 | 
实例化时传入的配置参数option对象 avatar = new Mavatar(option)
| 参数 | 值 | 描述 | 
|---|---|---|
| el | id(string),无默认值 | 必传,dom的id | 
| width | (string)默认200px | 不传则默认为生成200px宽的头像上传域 | 
| height | (string)默认200px | 不传则默认为生成200px高的头像上传域 | 
| backgroundColor | (string)默认为空 | 不传则裁剪时空的区域为透明 | 
| hd | (boolean)默认为true | 默认为生成两倍大小图片,解决高清屏中图片生成不清晰 | 
| fileOnchange | (function) | 图片本地上传到input后的回调方法 | 
特别申明:
			本站所有资源都是由网友投稿发布,或转载各大下载站,请自行检测软件的完整性!
			本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
			如有侵权请联系我们删除下架,联系方式:lei1294551502@163.com