Приведенный ниже код очень хорошо подходит для изменения размера изображения по размеру по высоте, и я также могу создать отдельную функцию по ширине. Но я не всегда уверен, что изображение нужно будет уменьшить по высоте или ширине.Изменение размера изображения
Например, если пространство, в которое изображение должно быть изменено, составляет 100 ширины и 100 высоты, а изображение - 150 на 90, тогда его ширина должна быть уменьшена. Если изображение равно 80 на 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);
}
Я отредактировал код еще раз, так как при дальнейшем осмотре ни моя обновленная версия, ни Дэн, казалось, не работали должным образом. Соотношение сторон было потеряно, поэтому вот еще один. Я пробовал это на одном изображении, и пока все хорошо. Здесь,
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
Не забудьте удалить эту строку: * если (this.aspectRatio == неопределенная) * –