预期行为
禁用“enforceBoundary”并缩小我们希望在它周围有一个小图像和空白区域
实际行为
缩小一点并点击裁剪按钮后,我们有一个全白的图像,这不是我们所期望的
重现问题的步骤
在 iPhone 上使用 Safari 或 chrome 打开下面的 codepen 链接:
- 点击“添加”按钮
- 从您的图库中选择一张图片
- 模态现已开放。这是您在模态最顶部选择的图片和图片下方的范围滑块
- 尝试使用此范围滑块缩小,直到图像周围有一些空白区域
- 点击“裁剪”按钮,您将看到一张全白的图片,您选择的图片不见了!
- 注意:不要使用安卓设备。在每个安卓设备上都很好
示例链接
这是我的 HTML 代码:
<div class="row AddItemImage">
<div class="remodal" data-remodal-id="cropImagePop" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="remodal-dialog">
<div class="remodal-content">
<div class="remodal-header">
<button data-remodal-action="close" class="remodal-close close"></button>
</div>
<div class="remodal-body">
<div id="upload-demo" class="center-block">
</div>
</div>
<div class="remodal-footer">
<button id="croppie-rotate" class="croppie-rotate btn DS-edit mt-0"><i class="icon-refresh"></i> rotate</button>
<button data-remodal-action="cancel" class="btn DS-remove mt-0">close</button>
<button data-remodal-action="confirm" id="cropImageBtn" class="btn DS-submit mt-0">crop</button>
</div>
</div>
</div>
</div>
<div class="col-md-3 col-sm-6" data-image="image1">
<div class="product product-2">
<input type="file" class="item-img file center-block" id="file1" name="file1" style="display: none;" required />
<figure class="product-media">
<div style="position: relative;">
<img id="image1" data-input="file1" class="item-img-output product-image img-fluid w-100" src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_640.png" onerror="this.onerror=null; this.src='/Contents/images/def_product.png'" />
</div>
<div class="product-action product-action-dark">
<a data-input="file1" data-hidden="hiddenimage1" class="btn-product AddImage" title="add"><span>add</span></a>
</div>
</figure>
</div>
</div>
</div>
JS代码:
var InputID = '';
var hiddenInput = '';
var $uploadCrop,
tempFilename,
rawImg,
imageId;
function readFile(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('.upload-demo').addClass('ready');
rawImg = e.target.result;
var inst = $('[data-remodal-id=cropImagePop]').remodal();
inst.open();
}
reader.readAsDataURL(input.files[0]);
} else {
swal("Sorry - you're browser doesn't support the FileReader API");
}
}
$uploadCrop = $('#upload-demo').croppie({
viewport: {
width: 300,
height: 300,
type: 'square'
},
boundary: {
width: '100%',
height: 400
},
enforceBoundary: false,
enableExif: true,
enableOrientation: true,
enableResize: false,
});
$('#croppie-rotate').on('click', function(ev) {
$uploadCrop.croppie('rotate', '90');
})
$(document).on('opening', '.remodal', function() {
// alert('Shown pop');
$uploadCrop.croppie('bind', {
url: rawImg,
orientation: 0
}).then(function() {
/*console.log('jQuery bind complete');*/
});
});
$('.item-img').on('change',
function() {
imageId = $(this).data('id');
tempFilename = $(this).val();
$('#cancelCropBtn').data('id', imageId);
readFile(this);
});
$('#cropImageBtn').on('click',
function(ev) {
$uploadCrop.croppie('result', {
type: 'base64',
format: 'jpeg',
quality: 0.7,
//size : 'original',
size: {
width: 1000,
height: 1000
},
backgroundColor: '#fff'
}).then(function(resp) {
$('.item-img-output[data-input=' + InputID + ']').attr('src', resp);
$('#' + hiddenInput).val(resp);
});
});
function add_image(input_id) {
$("#" + input_id).focus().trigger('click');
$("#" + input_id).unbind('click');
}
$('.AddImage').on('click',
function() {
InputID = $(this).data('input');
hiddenInput = $(this).data('hidden');
add_image(InputID);
$(this).closest('.product').find('#' + InputID).change(function() {
$(this).siblings('.product-media').find('.AddImage').click();
$(this).bind('click')
})
})
规格
- 浏览器:Safari
- 版本:14
我已准备好讨论这个问题,我会感谢任何可以帮助我解决这个问题的人