2011-11-28 44 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

相關問題