2011-03-14 65 views
4

造型当我做动画使用jQuery(如$(".myClass").slideDown()),它增加了一些风格内嵌到我的对象:jQuery的动画:忽略与CSS

# Before: 
<div class='myItem'>...</div> 
# Animation: 
=> $(".myItem").slideDown(); 
# After: 
<div class='myItem' style='display: block'> 

问题是如何动画后,我的对象返回到原始状态。

我有两种方法:

  • 我可以用凉wrap()功能来包装我的对象,它的动画和unwrap()回调动画。
  • 我可以保存我的原始状态html = $(".myItem").html()并在动画后重新分配。

为什么我需要它?其实我是在一个网站挖掘,那是使用古代(但很酷)CSS dropdown menu。我的目标是为jQuery添加下拉(slideDown)动画。问题是我的动画打破了CSS样式并停止工作。现在我正在使用我的第一个方法wrap,但它在IE中不起作用。

回答

4

一旦动画完成后,即在回调中,您是否可以不删除style属性?

$(".myItem").slideDown("slow", function() { 
    $(this).removeAttr("style"); 
}); 
+0

挺聪明的:)。我会试试看 – fl00r 2011-03-14 20:43:23