【发布时间】:2021-12-16 18:37:33
【问题描述】:
大家好,我被 JavaScript 库cropper.js 卡住了。我想在上传图片时初始化裁剪器。我做了一个名为 temp 的函数,当输入类型文件更改时触发看看代码 html
<input
type="file"
name="cropableImage"
id="cropableImageId"
onchange="temp(this)"
/>
javascript
function temp(input) {
if(input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#previewHolder').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
$("#main_image_section").show();
$("#choose_file").hide();
$("#tools_section").show();
const image=document.getElementById('previewHolder');
cropper = new Cropper(image, {
zoomable: true,
scalable:true,
rotatable:true,
autoCropArea:0.5,
background:false,
modal:true,
autoCrop: true,
viewMode: 0,
cropBoxResizable:true,
setDragMode:true,
});
} else {
alert('select a file to see preview');
$('#previewHolder').attr('src', '');
}
}
当我选择图像时,函数正在运行并加载图像。控制台中没有显示错误。但是裁剪器没有初始化。
当我以另一种方式执行此操作时,它会起作用。就像我做了一个按钮,当点击按钮时,函数运行并且cropper被初始化。
但我需要在加载图像时对其进行初始化。
【问题讨论】:
-
你正在尝试初始化它,之前图像甚至已经加载。这需要进入
reader.onload回调。
标签: javascript image cropperjs cropper