Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.11.2010, 23:02
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

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, помогите пожалуйста разобраться

Последний раз редактировалось abc_ua, 28.11.2010 в 00:13.
Ответить с цитированием
  #2 (permalink)  
Старый 28.11.2010, 00:17
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

e[i].style.width и тд.
Ответить с цитированием
  #3 (permalink)  
Старый 28.11.2010, 00:23
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

monolithed,
не работает
Ответить с цитированием
  #4 (permalink)  
Старый 28.11.2010, 00:55
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

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";
                        }
                }
        }
Ответить с цитированием
  #5 (permalink)  
Старый 28.11.2010, 01:05
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

monolithed,
не работает, у меня w и h равны 0 в ie 6
Ответить с цитированием
  #6 (permalink)  
Старый 28.11.2010, 01:24
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Почему тогда у меня в IE6 работает?
http://www.jsfiddle.net/RTq5N/53/
Ответить с цитированием
  #7 (permalink)  
Старый 28.11.2010, 02:00
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

monolithed, тут в ie работает, а на сайте - нет)
Ответить с цитированием
  #8 (permalink)  
Старый 28.11.2010, 12:27
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

abc_ua, попробуйте offsetWidth и offsetHeight.
Ответить с цитированием
  #9 (permalink)  
Старый 28.11.2010, 13:44
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

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

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


Такое ощущение, что для ie 6 созданные img не успевают загрузится, отсюда нулевые значения
Ответить с цитированием
  #10 (permalink)  
Старый 30.11.2010, 01:54
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

-----

Последний раз редактировалось abc_ua, 30.11.2010 в 04:04.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
относительная высота zmaxon ExtJS 13 04.10.2010 12:42
если (свойство css == 2) свойство css = 1; funkypublic Events/DOM/Window 1 09.06.2010 17:39
неактивность курсора после hidden bars Элементы интерфейса 6 06.02.2010 11:30
Узнать width = % -->> width = ?px для таблицы vah-smile Элементы интерфейса 7 04.11.2009 01:04
свойства width и height в IE.... alex.v Internet Explorer 18 29.09.2009 12:03