我正在使用jQuery .show()来为页面添加额外的DOM元素,并且当添加每个元素时,我想要下面的元素以相同的方式优雅地滑下去。使用jQuery为属性定义为“!important”的对象设置动画
不幸的是,其他元素有他们的立场与CSS !important
标志定义,这意味着它们不能被滑动动画没有动画本身也设置!important
标志在每一个动画移动一步。有没有办法做到这一点?
不幸的是,修改源HTML或链接的CSS样式对我来说在技术上是完全不可能的。
我正在使用jQuery .show()来为页面添加额外的DOM元素,并且当添加每个元素时,我想要下面的元素以相同的方式优雅地滑下去。使用jQuery为属性定义为“!important”的对象设置动画
不幸的是,其他元素有他们的立场与CSS !important
标志定义,这意味着它们不能被滑动动画没有动画本身也设置!important
标志在每一个动画移动一步。有没有办法做到这一点?
不幸的是,修改源HTML或链接的CSS样式对我来说在技术上是完全不可能的。
即使你的div有一个被定义为!important的样式,该div的子节点仍应该能够覆盖该样式。鉴于此,如果您先添加一个新元素(使用jQuery),然后将样式应用于该新元素,那该怎么办?像这样:
$("#something").wrapInner("<span class='test' />").children(".test").animate({
fontSize: "3em"
}, 1500);
这样你就不必修改原来的HTML/CSS或jQuery框架本身,在大多数情况下,你仍然可以达到预期的效果。
例的jsfiddle:http://jsfiddle.net/rVzhf/4/
内联样式覆盖!important
,所以使用$(element).css('top','10px')
或从包含!important
的元素中删除类名称。
我确实认为通过调用那些属性“!important”,你就可以搞砸了。真。重要的属性将超越任何不重要的东西!Jquery将样式添加为内联,这是以前的最高可能性!我不认为你可以要求jquery添加一个重要的属性。
解决方法:重做您的CSS以不使用!important。这样做的方式是滥用评分系统。总之,选择器越长,它就越重要,而不使用!重要标签。 !重要的是例外。
另一种方式,我不确定这会起作用,就是把你的!重要的css作为内联。它应该被Jquery的任何价值所取代。
“不幸的是,它是在技术上完全不可能[OP]修改源HTML或链接的CSS样式。“ – Blazemonger
然后回答其他答案 - >你必须用火来对抗火焰,或者!重要! – Fredy31
我没有将原始属性定义为'!important',我无法控制它们。 我愿意通过将更多的规则指定为'!important'来进行“用火来对抗火焰”,我只是特意寻找一种方法来使用jQuery动画。 – majackson
思想加载网页会覆盖实际的样式定义后所做的任何更改。 –
款式可以被覆盖,但实际上并未被移除。在这种情况下,重写实际上没有帮助,因为重写的唯一方法是指定另一个!重要规则,这留下了相同的动画问题。 – majackson
将风格视为游戏规则。有些规则比其他规则更重要(har har),但是如果教练告诉球员犯规,那么规则书说什么并不重要... Javascript会改变实际的项目属性,但它不会给一个关于“规则”的老鼠屁股;) – Sinetheta