JQuery: изменить размер изображения в пропорции данных () - метод? - PullRequest
1 голос
/ 17 декабря 2010

У меня следующий код, где я проверяю при загрузке, каков исходный размер изображения:

        $(".post-body img").each(function() {  
            $(this).data('width', $(this).width());
            $(this).data('height', $(this).height());
        });

После этого я изменяю размеры всех изображений до ширины родительского div .post-body.

var bw = $('.post-body').width();
$(".post-body img").each(function() {
        // Check the width of the original image size
        if (bw < $(this).data('width')) {
            $(this).removeAttr('height');
            $(this).attr( 'width', bw ); 
            //$(this).attr( 'height', height-in-ratio ); 
        }
});

это работает просто отлично! поэтому я проверяю, меньше ли ширина .post-body, чем оригинальная ширина изображения, я изменяю размер изображения до той же ширины, что и div.

однако я думаю, что это является ошибкой в ​​некоторых старых версиях Internet Explorer, потому что я удаляю атрибут высоты изображения.

Какой самый простой способ вычислить пропорциональную высоту изображения, если сохранены старая ширина и высота? У меня новая ширина, и я хочу рассчитать соответствующую высоту.

Я не могу найти простое математическое решение.

Итак, еще раз, я не хочу удалять атрибут высоты с изображения, но рассчитать пропорциональную высоту.

спасибо за подсказку. С уважением

1 Ответ

2 голосов
/ 17 декабря 2010
var newHeight = newWidth / oldWidth * oldHeight;

newWidth / oldWidth дает вам коэффициент изменения размера. Если исходная ширина равна 800, а новая ширина 400, это соотношение становится равным 0,5. Если ваш первоначальный рост был 600, и вы умножили его на это соотношение, вы получите 300. 800x600 такое же соотношение, как 400x300.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...