gpt4 book ai didi

jquery - 调整图像大小

转载 作者:行者123 更新时间:2023-12-01 03:29:18 26 4
gpt4 key购买 nike

下面的代码非常适合按宽高比和高度调整图像大小,我还可以按宽度创建单独的函数。但我并不总是确定图像是否需要按高度或宽度缩小。

例如,如果图像需要调整大小的空间为 100 宽度和 100 高度,而图像为 150 x 90,则需要缩小其宽度。如果图像为 80 x 160,则需要缩小高度。

所以我要问的是如何修改下面的代码,以便按宽高比缩小图像以适应宽度和高度参数?谢谢。

jQuery.fn.resizeHeightMaintainRatio = function(newHeight){
if (this.aspectRatio == undefined)
this.aspectRatio = parseInt($(this).width() / $(this).height());
$(this).height(newHeight);
$(this).width(newHeight * this.aspectRatio);
}

我再次编辑了代码,因为经过进一步检查,我的更新版本和 Dan 的更新版本似乎都无法正常工作。纵横比丢失了,所以这是另一个。我已经在一张图像上尝试过,到目前为止一切顺利。在这里,

        jQuery.fn.resizeMaintainRatio = function(newHeight, newWidth){
widthRatio = parseInt($(this).width() / newWidth);
heightRatio = parseInt($(this).height() / newHeight);

if(heightRatio > widthRatio)
{

this.aspectRatio = parseInt($(this).css("width") / $(this).css("height"));

$(this).css("height", newHeight);
$(this).css("width", newHeight * this.aspectRatio);

}
else{

this.aspectRatio = parseInt($(this).css("height") / $(this).css("width"));

$(this).css("width", newWidth);
$(this).css("height", newWidth * this.aspectRatio);

}

}

再次注意:进一步使用后,上面的代码工作起来非常奇怪,请尝试这个 - http://plugins.jquery.com/project/kepresize

最佳答案

以下代码将计算出哪一侧需要缩放(适用于非方形框,仅检查宽度与高度是行不通的)并根据该缩放。

如果图像小于 newWidth*newHeight 框,它也会放大图像。如果你不希望它放大,我在其中切换比例,检查宽度或高度是否> 1,然后才进行缩放。

免责声明:代码尚未运行,但概念应该是正确的。

编辑已更新OP的修复。

jQuery.fn.resizeHeightMaintainRatio = function(newHeight, newWidth){
widthRatio = parseInt($(this).width() / newWidth);
heightRatio = parseInt($(this).height() / newHeight);
if(widthRatio < 1 && heightRatio < 1){
widthRatio = heightRatio;
heightRatio = widthRatio;
}
if(widthRatio > heightRatio){
$(this).width(newWidth);
$(this).height(newHeight / widthRatio);
} else
{
$(this).height(newHeight);
$(this).width(newWidth / heightRatio);
}
}

关于jquery - 调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1738274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com