奇怪的Javascript行为IE8与Jquery和动画

时间:2011-03-04 20:44:00

标签: javascript jquery animation internet-explorer-8

我正在研究一个使用手风琴式菜单的项目,但我认为这更像是一个关于IE8和Jquery .animate()的一般性问题。出于某种原因,即使动画看起来像是完成的(使用回调函数测试),屏幕上显示的内容也是不完整的。它似乎正在完成,因为无论何时我使用浏览器放大和缩小,尝试突出显示区域或其他类似的事情以导致其自身纠正的外观(即显示动画的最终结果)。我已经在最新版本的Chrome中测试过,动画看起来很完美,所以这是一个IE问题。

当使用.animate()单击元素时,我正在为下一个元素设置一个特定距离的“margin-top”属性,从而显示下面的子菜单。当以这种方式“打开”元素而单击另一个元素时,将调用一个函数来检查所有要打开的元素,并关闭正在使用.animate()的元素。

我只输入了代码的描述,因为我觉得这是浏览器性能的问题(可能只是在这台机器上?)。有没有人听说IE8或以下版本中的动画或者只是Jquery / Javascript和IE8?

1 个答案:

答案 0 :(得分:1)

在IE8中,我有时必须手动使父元素重排,以便在动画后让其他元素正确移动。

function repaint(jElement) {
    if (!$.browser.msie) return;
    for (var i = 0; i < jElement.length; i++) {
        jElement[i].className = jElement[i].className;
    }
}

在动画完成后尝试在动画元素的父级上运行此函数,看看它是否解决了问题。