Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2009, 05:23
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

jQuery, slideToggle, position: relative (изображения становятся невидимыми)
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script>
	<script type="text/javascript">
		$(function() {
		$('a').click(function() {
			$('div').slideToggle(500);
			return false;
		});
		});
	</script>
<div style="display: none; position: relative;"><img>a</div>
<a href="#">link</a>

когда завершается появление div'а, изображения исчезают. Происходит это примерно на строчке 4113 (jquery-1.3.2):
this.elem.style.overflow = this.options.overflow;

где div'у возвращается его изначальное значение overflow (''), во время анимации overflow: hidden. В результате currentStyle.overflow == 'visible'. Вопрос вроде очевиден. Участие приветствуется

p.s. обсуждалось вот здесь, но ТС, добавив к своему непонятно зачем нужному "position: relative" "float: left" и, обрадовавшись, что работает, поспешил закрыть тему

UPD: странно, я ж помню, что после комментирования этой строчки работало . По последним данным проблема в jQuery.attr (чуть позже, 4128)

UPD2: да уж, получилось сократить до
<div style="display: none; position: relative;"><img>a</div>
<a href="#" onclick="
    var style = document.getElementsByTagName('div')[0].style;
    style.display = 'block';
    style.height = '30px';
    style.height = '';
">link</a>

Последний раз редактировалось x-yuri, 11.06.2009 в 06:00.
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2009, 06:23
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Кстати, у меня ИЕ7 картинку показал, если сделать ресайз окна
Добавил к div'у zoom:1, картинка также появилась

Видимо, проблема именно в отсутствии св-ва hasLayout для приснопамятного div'a. float:left придает ему hasLayout = true, поэтому в зацепившей это теме ТС решил проблему. Наткнулся на "почитать" здесь

Последний раз редактировалось e1f, 11.06.2009 в 06:44. Причина: это все hasLayout виноват
Ответить с цитированием
Ответ



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

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