以下のコードは、高さによるアスペクト比で画像のサイズを変更するのに非常にうまく機能し、幅で別の関数を作成することもできます。ただし、画像を高さまたは幅で縮小する必要があるかどうかは常にわかりません。
たとえば、画像のサイズを変更する必要があるスペースが幅100、高さ100で、画像が150 x 90の場合、その幅を縮小する必要があります。画像が80x160の場合、高さを小さくする必要があります。
だから私が求めているのは、幅と高さの両方のパラメーターに合うようにアスペクト比で画像を縮小するように、以下のコードをどのように変更できるかということです。ありがとう。
jQuery.fn.resizeHeightMaintainRatio = function(newHeight){
if (this.aspectRatio == undefined)
this.aspectRatio = parseInt($(this).width() / $(this).height());
$(this).height(newHeight);
$(this).width(newHeight * this.aspectRatio);
}
さらに詳しく調べてみると、更新されたバージョンもダンも正しく機能していないようだったので、コードをもう一度編集しました。アスペクト比が失われたので、ここにもう1つあります。私は1つの画像でそれを試しましたが、これまでのところ非常に優れています。ここにあります、
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