Показать сообщение отдельно
  #1 (permalink)  
Старый 20.10.2010, 16:22
Аватар для faiwer
Новичок на форуме
Отправить личное сообщение для faiwer Посмотреть профиль Найти все сообщения от faiwer
 
Регистрация: 20.10.2010
Сообщений: 7

onResize() для DIV-a
Доброго времени суток. У меня на сайте дизайн построен по принципу блокнота (faiwer.ru), в нижней правой части может получится небольшой разрыв или наплыв, что не есть хорошо. Написал для решения этой проблемы скрипт, который залатывает дыру отдельным DIV-ом. Повешал выполнение этой функции при Ready() и onResize(). Однако, иногда, блок (который аля блокнот) изменяет свои размеры не изменяя размеры формы, ввиду чего надо заного вызвать мою функцию по залатыванию. Но я не знаю как отследить это событие.

Либо дописывать во все функции, которые могут растянуть DIV, свою функцию, что малореально (да и вообще аморально), либо повешать таймер. Я не уверен, но мне показалось, что мой сайт крашится в IE7 именно из-за таймера, похоже что там происходит переполнение буфера.

Что посоветуете сделать? Как решить проблему?
Вот код функции

function fix_page(){  
	var ext_H = 48; // лишняя высота 
	var one_item = 46; // высота одного полного звена
	var bad_section = 23; // нормальная часть - резерв на всякий пожарный
	var d = document.getElementById("left_column");  
	var c = document.getElementById("cover");
  
	if (!d || !c) return false;
  
	var dy = (d.clientHeight - (ext_H)) % one_item;  
	if (dy < bad_section)  	  
		c.style.bottom=25+dy+"px"
			else c.style.bottom=24+"px";	
	setTimeout("fix_page()", 1000);
}
Ответить с цитированием