layui xfile 动态选择裁剪尺寸
时间: 2023-07-21 07:41:24 浏览: 106
好的,你可以使用 layui 的 xfile 模块的裁剪功能来实现动态切换裁剪尺寸。具体的步骤如下:
1. 在 layui 中引入 xfile 模块,并设置裁剪参数:
```javascript
layui.use('upload', function(){
var upload = layui.upload;
//执行实例
var uploadInst = upload.render({
elem: '#test1' //绑定元素
,url: '/upload/' //上传接口
,done: function(res){
//上传完毕回调
}
,error: function(){
//请求异常回调
}
,acceptMime: 'image/*'
,accept: 'images'
,size: 1024*10
,exts: 'jpg|png|gif|bmp|jpeg'
,multiple: false
,auto: false
,bindAction: '#upload'
,field: 'file'
,choose: function(obj){
//将每次选择的文件追加到文件队列
var files = obj.pushFile();
//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
obj.preview(function(index, file, result){
//操作裁剪图片的区域
layui.use(['layer', 'laydate', 'laypage', 'upload', 'colorpicker', 'slider', 'xfile'], function () {
var layer = layui.layer;
var laydate = layui.laydate;
var laypage = layui.laypage;
var upload = layui.upload;
var colorpicker = layui.colorpicker;
var slider = layui.slider;
var xfile = layui.xfile;
//初始化裁剪
xfile.render({
elem: '#xfile'
,url: '/image/cut/' //上传接口
,size: 1024*10
,done: function(res){
//上传完毕回调
}
,error: function(){
//请求异常回调
}
,choose: function(obj){
//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
obj.preview(function(index, file, result){
//切换裁剪尺寸
xfile.config({
area: ['800px', '600px']
});
//操作裁剪图片的区域
xfile.cut({
src: result //图片路径
,size: ['100px', '100px'] //裁剪尺寸
,ok: function(base64){
//裁剪成功
}
,cancel: function(){
//取消裁剪
}
});
});
}
});
});
});
}
});
});
```
2. 在选择图片后,通过调用 `xfile` 模块的 `config` 方法来动态修改裁剪的尺寸:
```javascript
xfile.config({
area: ['800px', '600px']
});
```
3. 在裁剪图片时,通过传递裁剪尺寸参数来动态切换裁剪尺寸:
```javascript
xfile.cut({
src: result //图片路径
,size: ['100px', '100px'] //裁剪尺寸
,ok: function(base64){
//裁剪成功
}
,cancel: function(){
//取消裁剪
}
});
```
这样就可以实现动态选择裁剪尺寸的功能了。
阅读全文