IE8中的jQuery .animate和负margin-top

时间:2012-01-17 11:54:40

标签: javascript jquery internet-explorer-8 jquery-animate

我在Internet Explorer 8中遇到动画问题。我使用的代码适用于所有优秀的浏览器,甚至可以在Internet Explorer 7中按预期工作。

基本布局是在容器div中相互浮动的2个div。

在动画之前,我在另外2个顶部添加了第3个div,高度为0,边距为-10(容器div的高度与其中的2相匹配,新的应该是看起来它正从这个顶端发展。)

然后我在新div上使用.animate,并为x的高度和-y的margin-top设置动画(其中-y比x大10)。

在所有其他浏览器中,新div增长,负余量使其保持在下面的div之上。

但是在Internet Explorer 8中,下面的div跳到了新的div之上!

这似乎是一个保证金问题,因为当我从动画中删除边距时,它不再成长,但内容会像你期望的那样向下推。此外,如果我在动画结束时重置兄弟div上的边距,他们会神奇地回到原位(实际上我正在尝试使用IE开发人员工具,我发现改变兄弟姐妹的任何属性都会将它们放回原位)。

这是动画代码:

        var height_to_set = $('#splash').height() - 95;
        $('#splash').children('.tag').prepend('<div class="tag_explain"> </div>').children('.tag_explain').css( 'background-color' , bgc ).animate(
        {
            height:height_to_set,
            'margin-top':'-'+(height_to_set+10)+'px'
        } , 300 );

有没有人对这里可能出现的问题有任何建议?

0 个答案:

没有答案