2011-11-28 38 views
1

我正在使用jQuery .show()来为页面添加额外的DOM元素,并且当添加每个元素时,我想要下面的元素以相同的方式优雅地滑下去。使用jQuery为属性定义为“!important”的对象设置动画

不幸的是,其他元素有他们的立场与CSS !important标志定义,这意味着它们不能被滑动动画没有动画本身也设置!important标志在每一个动画移动一步。有没有办法做到这一点?

不幸的是,修改源HTML或链接的CSS样式对我来说在技术上是完全不可能的。

+0

思想加载网页会覆盖实际的样式定义后所做的任何更改。 –

+0

款式可以被覆盖,但实际上并未被移除。在这种情况下,重写实际上没有帮助,因为重写的唯一方法是指定另一个!重要规则,这留下了相同的动画问题。 – majackson

+1

将风格视为游戏规则。有些规则比其他规则更重要(har har),但是如果教练告诉球员犯规,那么规则书说什么并不重要... Javascript会改变实际的项目属性,但它不会给一个关于“规则”的老鼠屁股;) – Sinetheta

回答

1

即使你的div有一个被定义为!important的样式,该div的子节点仍应该能够覆盖该样式。鉴于此,如果您先添加一个新元素(使用jQuery),然后将样式应用于该新元素,那该怎么办?像这样:

$("#something").wrapInner("<span class='test' />").children(".test").animate({ 
    fontSize: "3em" 
    }, 1500); 

这样你就不必修改原来的HTML/CSS或jQuery框架本身,在大多数情况下,你仍然可以达到预期的效果。

例的jsfiddle:http://jsfiddle.net/rVzhf/4/

0

内联样式覆盖!important,所以使用$(element).css('top','10px')或从包含!important的元素中删除类名称。

+3

我不认为内联样式覆盖!重要的标签,因为如果他们这样做,他不会在第一个问题。 – Fredy31

+1

内联样式只会覆盖'!important',如果同时指定为'!important'。这样做不会改变我的动画问题。 演示:http://jsfiddle.net/rVzhf/1/ – majackson

+0

您可以直接控制样式表,也许可以删除!重要的语句。这个插件可能有所帮助:http://flesler.webs.com/jQuery.Rule/ –

-3

我确实认为通过调用那些属性“!important”,你就可以搞砸了。真。重要的属性将超越任何不重要的东西!Jquery将样式添加为内联,这是以前的最高可能性!我不认为你可以要求jquery添加一个重要的属性。

解决方法:重做您的CSS以不使用!important。这样做的方式是滥用评分系统。总之,选择器越长,它就越重要,而不使用!重要标签。 !重要的是例外。

另一种方式,我不确定这会起作用,就是把你的!重要的css作为内联。它应该被Jquery的任何价值所取代。

+0

“不幸的是,它是在技​​术上完全不可能[OP]修改源HTML或链接的CSS样式。“ – Blazemonger

+0

然后回答其他答案 - >你必须用火来对抗火焰,或者!重要! – Fredy31

+0

我没有将原始属性定义为'!important',我无法控制它们。 我愿意通过将更多的规则指定为'!important'来进行“用火来对抗火焰”,我只是特意寻找一种方法来使用jQuery动画。 – majackson

相关问题