jQuery SlideDown在Firefox中闪烁

时间:2010-05-24 13:06:55

标签: jquery firefox flicker

再一次jQuery,Firefox闪烁问题。 (在IE6 / 7/8,Safari中没有闪烁)

我在这里上传了一个示例页面: http://sithlord.bplaced.net/testing/jquery_flickering/flickering.html

有两个div容器。内部div是我隐藏的那个。 外层是带有样式元素的包装容器。 我发现闪烁只发生在选择框中。没有SelectBox就没有闪烁。

但不是全部: (我无法发布第二个超链接:它与上面相同的链接;只将“flickering.html”更改为not_flickering.html)

在这种情况下,我选择了较低的“选项” - 如您所见,在这种情况下闪烁消失。 当总共有较少的选项时,情况也在发生。 (不到20左右)

我找到的唯一解决方法是删除选择框:)

任何想法,为什么会发生这种情况以及如何解决它?

谢谢!

4 个答案:

答案 0 :(得分:5)

溢出:隐藏;直接应用于包含div工程。

答案 1 :(得分:0)

找到此post。尝试在隐藏的div上设置宽度或高度。我注意到你的div上没有样式,所以它可能会起作用。

大都市

答案 2 :(得分:0)

请参阅http://dev.jquery.com/ticket/5743为什么jQuery通常可以实现这些功能。简而言之,没有参数的css函数声称只返回值而不更新任何东西,它实际上在某些情况下更新了DOM。

答案 3 :(得分:0)

我有点迟到了,但我遇到了类似的问题。我的解决方案:将display:none设置为动画前的选择,然后显示:block after。例如:

 $("div#hidden").hide();
  $("a").click(function(e) {
    e.preventDefault();
    $("div#hidden select").css('display','none');
    $("div#hidden").slideDown(1000);
    $("div#hidden select").css('display','block');
    });
});

如果您愿意,也可以使用jquery show / hide功能。