Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   изменить размер изображения (https://javascript.ru/forum/dom-window/43850-izmenit-razmer-izobrazheniya.html)

imediasun1 23.12.2013 23:38

изменить размер изображения
 
Как изменить размер отображаемой картинки пропорционально
Есть такой код но он не работает почему?
var img = $("#messages img")[0]; // Получаем IMG нашей картинки
var pic_real_width, pic_real_height;
$("<img/>") // Сделаем в памяти копию этой картинки, чтобы избежать проблем с CSS
    .attr("src", $(img).attr("src"))
    .load(function() {
        // Здесь копия нашей картинки загружена и можно получить её размеры
        pic_real_width = this.width;   // Учтите: $(this).width() не сработает
        pic_real_height = this.height; // потому что картинка находится в памяти.
		var img = $("#messages img");
		
		if (pic_real_width>pic_real_height || pic_real_width==pic_real_height){
		ratio=pic_real_width/pic_real_height
		
		img.attr({ width: 300 });
		img.attr({ height: 300/ratio });
		img.css('margin-left',-150);
		img.css('margin-top',-pic_real_height/2);
		
		}
		else{
		img.attr({ height: 300 });
		img.attr({ width: 300/ratio });
		img.css('margin-left',-pic_real_width/2);
		img.css('margin-top',-150);
		}
    });

Почемуто меняется только ширина а высота остается та же в случае когда ширина больше высоты
http://imedia.in.ua/main/page/catalog_add

danik.js 24.12.2013 09:33

Если задавать только одну сторону, и оставить незаданной другую - то картинка будет автоматически изменяться пропорционально.

рони 24.12.2013 11:12

Цитата:

Сообщение от imediasun1
Почемуто меняется только ширина а высота остается та же в случае когда ширина больше высоты

потому что ratio нормально не вычисляется

рони 24.12.2013 11:25

Цитата:

Сообщение от danik.js
то картинка будет автоматически изменяться пропорционально.

... в современных браузерах

danik.js 24.12.2013 14:18

Цитата:

Сообщение от рони
... в современных браузерах

А в каких не будет?

рони 24.12.2013 15:00

danik.js,
по моему во всех ие вплоть до 11
для теста
http://learn.javascript.ru/play/ZGC7Y
версия с изменением высоты и ширины

http://learn.javascript.ru/play/VnfIT

обсуждалось здесь
Проблема с выводом изображений из массива

Яростный Меч 24.12.2013 15:16

Цитата:

Сообщение от рони
по моему во всех ие вплоть до 11

странно..

<img style="width: 300px;" src="http://ru.lookatcode.com/show/094733911100775/pict5.jpg" />

в ИЕ8 пропорционально уменьшилось (картинка шире 300пх)

рони 24.12.2013 15:21

Яростный Меч,
вы проверяли код для теста http://learn.javascript.ru/play/ZGC7Y

Яростный Меч 24.12.2013 15:41

рони,

ага, точно.
по непонятным причинам отваливался дефолтный width:auto
вот, поправил (и упростил код)
http://learn.javascript.ru/play/Eq3GPb

рони 24.12.2013 15:50

Цитата:

Сообщение от Яростный Меч
вот, поправил (и упростил код)

а смысл ? ... ну пусть будет
если интересно, можно ещё на тему глюков с шириной в ие глянуть 1 пример monolithed, из http://javascript.ru/forum/misc/1507...html#post85224 в 8 он точно не сработает.


Часовой пояс GMT +3, время: 15:06.