2

这里的简单示例:http: //jsfiddle.net/CnUkA/5/

我有一个应用了 slideDown 动画的外部 div,在这个 div 内部是一个带有position:relative.

单击按钮时立即显示内部 div 是 IE7。在我使用它的现实世界中,我需要该 div 相对于我可以用绝对值将孩子定位在其中。

- - 编辑 - -

使用position:absoluteon#slide不适合我的情况。

我将拥有相对于#innerdiv 绝对定位的元素,因此我也无法position:relative从中删除。

这是一个更新的示例,显示了为什么我需要position:relativeon #innerhttp://jsfiddle.net/CnUkA/9/

在 IE7 中完成幻灯片动画之前,相对元素和绝对元素都会显示

--- 编辑 2 ---

结合使用以下答案,我认为这是一个不错的解决方案:

http://jsfiddle.net/CnUkA/13/

添加position:relative到向下滑动的 div,然后position:static在动画完成后设置。这可以防止元素消失。

4

3 回答 3

1

简单的方法,我在我的 IE 浏览器中进行了测试

Remove-  #inner position:relative property And Update your jQuery script also

<script type="text/javascript">
$(document).ready(function(){

    $("button").click(function(){

         $("#slide").slideDown(2000, function()
         { 
         $("#inner").css("position","relative");
         });

    });

});
</script>
于 2012-05-16T10:52:18.373 回答
1

似乎子项立即显示,因为偏移量父项不是#slidediv。

如果您position: relative;#slidediv 上设置它会更好,但由于某种原因,最后三行在幻灯片后消失了。

如果你position: absolute;#slidediv 上设置它工作正常。

于 2012-05-16T10:15:50.593 回答
0

只需将绝对位置添加到

#slide{
   display:none;
   position:absolute;
}
于 2012-05-16T10:29:34.613 回答