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: странно, я ж помню, что после комментирования этой строчки работало :blink:. По последним данным проблема в 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>
|
Кстати, у меня ИЕ7 картинку показал, если сделать ресайз окна
Добавил к div'у zoom:1, картинка также появилась :) Видимо, проблема именно в отсутствии св-ва hasLayout для приснопамятного div'a. float:left придает ему hasLayout = true, поэтому в зацепившей это теме ТС решил проблему. Наткнулся на "почитать" здесь |
| Часовой пояс GMT +3, время: 00:25. |