我正在尝试使用fengyuanchen jqueryropper插件强加裁剪数据输出的最小大小-https://github.com/fengyuanchen/cropper
该插件提供两个选项minCropBoxWidth
和minCropBoxHeight
,但是它们仅控制屏幕上的实际裁剪框。由于裁切器中图像的大小可以是任意的(在一定程度上),这无助于确保最终输出的大小。它的直接含义足以检索图像的实际大小(它通过data参数传递给crop
函数)。我所坚持的是一旦满足最小宽度/高度值,就停止了裁剪框尺寸的减小。我得到$(this).cropper(...).disable is not a function
$('.image-preview img').cropper({
aspectRatio:1/1,
strict:true,
background:false,
guides:false,
autoCropArea:1,
rotatable:false,
minCropBoxWidth:20,//using these just to stop box collapsing on itself
minCropBoxHeight:20,
crop:function(data){
//test the new height/width
if(data.height < 120 || data.width < 120){
//try to make it stop
$(this).cropper().disable(); //here be the error
}else{
var json = [
'{"x":' + data.x,
'"y":' + data.y,
'"height":' + data.height,
'"width":' + data.width + '}'
].join();
$('#image-data').val(json);
}
}
参考方案
首先,调用disable
方法是这样完成的:
$(this).cropper('disable');
但这对您要实现的目标无济于事。
相反,我建议处理由裁剪器触发的适当事件:dragstart.cropper
和dragmove.cropper
。为了防止事件结束,您可以返回一个假值。
这是一个例子:
$('.img-container img').on('dragmove.cropper', function (e) {
console.log('dragmove.cropper');
var $cropper = $(e.target);
// Call getData() or getImageData() or getCanvasData() or
// whatever fits your needs
var data = $cropper.cropper('getCropBoxData');
console.log("data = %o", data);
// Analyze the result
if (data.height <= 150 || data.width <= 150) {
console.log("Minimum size reached!");
// Stop resize
return false;
}
// Continue resize
return true;
}).on('dragstart.cropper', function (e) {
console.log('dragstart.cropper');
var $cropper = $(e.target);
// Get the same data as above
var data = $cropper.cropper('getCropBoxData');
// Modify the dimensions to quit from disabled mode
if (data.height <= 150 || data.width <= 150) {
data.width = 151;
data.height = 151;
$(e.target).cropper('setCropBoxData', data);
}
});
JSFiddle
PHP:不推荐使用password_hash的'salt'选项 - php我正在使用密码哈希进行注册。我需要手动创建Salt,以下是我使用的代码:$options = [ 'cost' => 11, 'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM) ]; $password = password_hash( $this->…
PHP-全局变量的性能和内存问题 - php假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…
PHP strtotime困境 - php有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00…
php-casperjs获取内部文本 - php我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…
data.push不适用于jQuery - php我正在通过jquery的post方法发送数据。通过以下方式通过serializeArray()方法从表单收集数据:$("body").on("click",".submit",function(event){ var data = $('#formid').serializeAr…