Показать сообщение отдельно
  #3 (permalink)  
Старый 27.01.2010, 10:10
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

HTML такой значит:
<div class="parts"><div class="part_head">Нажми</div><div class="part_body">Ляляляля контент</div></div>

CSS такой:
.part_body{margin:0;padding:0;position:relative;}


Таким явакод был и исчезало содержимое "part_body":
$('div.part_head').click(function() { var parthead = $(this); partbody = parthead.next('div.part_body');
	if (partbody.is(":hidden")) {
		partbody.animate({height: "show"}, 500);
	} else {
		partbody.animate({height: "hide"}, 500);
	}
  });

А так сделал чтоб работало(при этом удалил position:relative; для part_body из css):
$('div.part_head').click(function() { var parthead = $(this); partbody = parthead.next('div.part_body');
	if (partbody.is(":hidden")) {
		partbody.css('position', 'relative').animate({height: "show"}, 500, function(){partbody.css('position', 'static')});
	} else {
		partbody.css('position', 'relative').animate({height: "hide"}, 500);
	}
  });


В чём соль. В моём случае на момент анимации контент появляется раньше чем заканчивается анимация, это не красиво, вот чтоб IE правильно раздвигал див я поставил relative ему, но IE решил прятать содержимое тега, пришлось прибегнуть к хитрости...

Последний раз редактировалось sysya, 27.01.2010 в 10:12. Причина: дополнить
Ответить с цитированием