Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 图像未裁剪到正确大小_Javascript_Jquery_Image_Crop - Fatal编程技术网

Javascript 图像未裁剪到正确大小

Javascript 图像未裁剪到正确大小,javascript,jquery,image,crop,Javascript,Jquery,Image,Crop,这个jquery脚本可以通过调整图像url将任何图像裁剪为正确的大小。这是我在web中为特定div/元素的裁剪图像找到的唯一Jquery脚本。问题是,脚本突然无法将图像裁剪到正确的大小,脚本的宽度-高度变量是var w=200和var h=150,但问题是width变量不起作用,裁剪的图像高度和宽度变为相同的大小。表示仅高度变量起作用,输出裁剪图像变为150pxX150px。它应该是200px 150px JS: var w = 200; var h = 150; $('.crop').find

这个jquery脚本可以通过调整图像url将任何图像裁剪为正确的大小。这是我在web中为特定div/元素的裁剪图像找到的唯一Jquery脚本。问题是,脚本突然无法将图像裁剪到正确的大小,脚本的宽度-高度变量是
var w=200
var h=150
,但问题是width变量不起作用,裁剪的图像高度和宽度变为相同的大小。表示仅高度变量起作用,输出裁剪图像变为150pxX150px。它应该是200px 150px

JS:

var w = 200;
var h = 150;
$('.crop').find('img').each(function(n, image){
  var image = $(image);
  image.attr({src : image.attr('src').replace(/s\B\d{2,4}/,'s' + w + '-h' + h +'-c')});
  image.attr('width',w);
  image.attr('height',h);
 });
问题>
注意:我使用的是最新的chrome浏览器,版本43.0.2357.130不起作用,在最新的Firefox中也不起作用。请使用Inspect元素[Shift+Ctrl+I]查看原始尺寸,或下载裁剪后的图像

我无法找到图像未裁剪到正确大小的任何原因/问题?解决办法是什么?请帮助:(

提前感谢。

您在attr方法中使用了大括号
{}
,该方法不允许使用,因为它不接受对象
{}
作为参数

因此,您可以更改为:

image.attr({src : image.attr('src').replace(/s\B\d{2,4}/,'s' + w + '-h' + h +'-c')});
为此:

image.attr('src' , image.attr('src').replace(/s\B\d{2,4}/,'s' + w + '-h' + h +'-c'));

但更好的解决方案是这样使用:

image.attr('src' , function(i,v){
   return v.replace(/s\B\d{2,4}/,'s' + w + '-h' + h +'-c'));
});
image.css({'width':w,'height':h});

您可以使用以下方式设置宽度和高度:

image.attr('src' , function(i,v){
   return v.replace(/s\B\d{2,4}/,'s' + w + '-h' + h +'-c'));
});
image.css({'width':w,'height':h});
我发现了,并做了一些测试

然后我发现
s200-h150-c
看起来很奇怪

所以我换了

image.attr({src:image.attr('src').replace(/s\B\d{2,4}/,'s'+w+'-h'+h+'-c'));

image.attr({src:image.attr('src').replace(/s\B\d{2,4}/,'w'+w+'-h'+h+'-c'));

使用
s200-h150-c
成为
w200-h150-c
,它可以工作。不确定原始邮件是否有打字错误或功能是否已更改

var w=200;
var h=150;
$('.crop')。查找('img')。每个(函数(n,图像){
变量图像=$(图像);
attr('src',image.attr('src').replace(/s\B\d{2,4}/,'w'+w+'-h'+h+'-c');
image.attr('width',w);
image.attr('height',h);
});

请保存交叉图像以查看实际结果。


1) 修剪后(结果:150px 150px)



2) 修剪后(结果:150px 150px)



在attr()内使用{}是错误的,我应该怎么做?请拉小提琴。
image.attr('src',image.attr('src')。替换(/s\B\d{2,4}/,'s'+w+'-h'+h+'-c')@Bhojendra-Nepal谢谢,但不起作用,请看fiddle:@Aabira看看我的答案,这是你想要的吗?我的意思是使用jquery的css()方法。很抱歉,无法创建/查看JSFIDLE,因为我的internet连接非常慢。-谢谢你给我小提琴。好的,亲爱的,谢谢你的尝试。