Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   IE 6 свойство width (https://javascript.ru/forum/css-html-internet-explorer/13356-ie-6-svojjstvo-width.html)

abc_ua 27.11.2010 23:02

IE 6 свойство width
 
Написал скрипт, который меняет размер картинкам, вписывая их в определенные рамки, сохраняя при этом исходные пропорции:

var e = document.getElementsByTagName("img");
var width = 200, height = 300;
var w, h, hi, wi;
	
for (var i = 0; i < e.length; i++)
	if (e[i].className == "ph_cat")
		{
			w = e[i].width;
			h = e[i].height;
			
			hi = h * width / w;
			
			if (hi <= height)
				{
					e[i].width = width;
					e[i].style.paddingTop = (height - hi)/2 + "px";
					e[i].style.paddingBottom = (height - hi)/2 + "px";
				}
			else
				{
					wi = w * height / h;
					if (wi <= width)
						{
							e[i].height = height;
							e[i].style.paddingLeft = (width - wi)/2 + "px";
							e[i].style.paddingRight = (width - wi)/2 + "px";
						}
				}
		}


В IE 6 переменные w и h равны 0, помогите пожалуйста разобраться

monolithed 28.11.2010 00:17

e[i].style.width и тд.

abc_ua 28.11.2010 00:23

monolithed,
не работает

monolithed 28.11.2010 00:55

abc_ua так в IE6 работает:

var e = document.getElementsByTagName("img");
var width = 200, height = 300;
var w, h, hi, wi;
    
for (var i = 0; i < e.length; i++)
    if (e[i].className == "ph_cat")
        {
            w = e[i].width;
            h = e[i].height;
            
            hi = h * width / w;
            
            if (hi <= height)
                {
                    e[i].style.width = width +'px';
                    e[i].style.paddingTop = (height - hi)/2 + "px";
                    e[i].style.paddingBottom = (height - hi)/2 + "px";
                }
            else
                {
                    wi = w * height / h;
                    if (wi <= width)
                        {
                            e[i].style.height = height +'px';
                            e[i].style.paddingLeft = (width - wi)/2 + "px";
                            e[i].style.paddingRight = (width - wi)/2 + "px";
                        }
                }
        }

abc_ua 28.11.2010 01:05

monolithed,
не работает, у меня w и h равны 0 в ie 6

monolithed 28.11.2010 01:24

Почему тогда у меня в IE6 работает?
http://www.jsfiddle.net/RTq5N/53/

abc_ua 28.11.2010 02:00

monolithed, тут в ie работает, а на сайте - нет)

exec 28.11.2010 12:27

abc_ua, попробуйте offsetWidth и offsetHeight.

abc_ua 28.11.2010 13:44

проблема оказалась не в этом
$.get("ссылка", function (data) {
	...
	list += "<img...";
	...
	$("div#ph_catalog").html(list);
});

window.onload = function () {
	/* изменение размеров изображений */
});


Такое ощущение, что для ie 6 созданные img не успевают загрузится, отсюда нулевые значения

abc_ua 30.11.2010 01:54

-----


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