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, время: 20:01. |