Javascript.RU

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

В IE6,7 по окончании анимации позиционированного элемента исчезает его содержимое...
В IE6,7 по окончании анимации позиционированного элемента исчезает его содержимое, как быть? понимаю что проще убрать position:...; из CSS, но может есть другой подход к этой проблемке? кроме как попросить разработчиков IE переделать свой продукт
...уверен что IE8 так же богат этими недостатками.
В опере, хроме нормально всё работат.
Я в своём приложении решил проблему, если надо сюда кину пример

Последний раз редактировалось sysya, 27.01.2010 в 05:55. Причина: Дополнить
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2010, 09:14
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Код, пожалуйста, приведите!
Ответить с цитированием
  #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. Причина: дополнить
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2010, 10:51
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Цитата:
.animate({height: "show"}, 500)
как же Вы собираетесь плавно изменять дискретные значения?

используйте вместо этого
.fadeIn(500)

или
.slideUp(500)
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2010, 13:27
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

Сообщение от subzey Посмотреть сообщение
как же Вы собираетесь плавно изменять дискретные значения?

используйте вместо этого
.fadeIn(500)

или
.slideUp(500)
Пожалуй не соглашусь, потому что после slideUp так же пропадает, а fadeIn мне не подходит, нужно именно чтоб выезжало
Ну попробую ещё раз slideUp, мож чё изменится...
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2010, 13:44
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

Попробовал slideUp, тоже самое, div открывается и содержимое как я понял становится HIDDEN, а абсолютно позиционированные элементы улетают на верх... Смотрел с IE7...
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2010, 14:10
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

Нашёл способ, для part_body в css добавить float:left; в IE работат отлично, а в др. браузерах косяки...
Разве что отдельно для IE настройки css сделать

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



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

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