Я бы предположил, что элемент <img>
, которым вы управляете, не имеет объявленных атрибутов height
или width
.Если это так, то проблема заключается в том, как браузеры разумно изменяют размеры изображений с учетом только одного ограничения.
Если у вас есть изображение шириной 1000 пикселей и высотой 1000 пикселей, и вы пишете тег IMG, например, так:
<img src="big_image.gif" width="10" />
Современные браузеры рендерит огромное изображение, уменьшенное до 10 на 10 пикселей.
Итак, в строке, где вы изменяете высоту:
thumb.height(config.maxHeight);
браузервперед также изменяет ширину.Если впоследствии вы прочитаете ширину (то есть thumb.width(Math.ceil(thumb.width() / ratio))
), вы будете читать новую ширину, а не ширину, которую она имела до того, как получила новую высоту.