2012-03-29 5 views
6

Bitte beachten Sie die unten jQuery:, wie benutzen wichtig in jQuery animieren() Funktion

ich wirklich fragen, wie ich CSS verwenden können !important für height in diesem Code.

 $j('#lveis-wrapper_3').animate({ 
      opacity: 0.0, 
      height : 200 
     }, 1200); 

Die CSS von #lveis-wrapper_3 unter:

#lveis-wrapper_3 
{ 
    width: 844px !important; 
    height: 936px !important; 
    margin: 0pt 0pt 10px !important; 
    padding: 0pt !important; 
    float: none; 
} 

ich nicht !important aus height: 936px aus irgendwelchen Gründen entfernen ...
so möchte ich, dass height durch animate() jQuery-Funktion ändern - aber wie ?

+3

Ugh, alle, die 'important' ... muss einen Weg geben Sie den Code neu zu organisieren ... – elclanrs

+0

@! elclanrs danke für den Kommentar :) – MoonLight

Antwort

6

Sie können das einfach nicht tun.

Per ...

„Alle animierte Eigenschaften sollten ... ... die meisten Eigenschaften in einem einzigen numerischen Wert animiert werden, die nicht-numerischen nicht Grund jQuery animiert werden Funktionalität ...“

http://api.jquery.com/animate/


Ich empfehle dringend, Ihren Bedarf für !important erneut zu prüfen.

+2

Manchmal '' wichtig' ist nützlich. Ich besitze weder den HTML-Code, noch kann ich eine Änderung verlangen. Das bedeutet, ich muss CSS ersetzen, was den Code unnötig verlängert. – Laoujin

+2

@Laoujin, in aller Fairness, ich habe nicht gesagt _ "benutze es nie" _ oder _ "benutze es nicht" _. Ich sagte nur, dass sein "Bedürfnis" _ _ "überprüft" werden sollte _. – Sparky

0

Sie können das nicht tun, aber versuchen Sie es!

Je nachdem, ob es sich um ein DIV, IMG, ... handelt, müssen Sie so etwas tun. Dieses Beispiel ist in dem Fall eines Bildes:

$j('img#lveis-wrapper_3').animate({ 
     opacity: 0.0, 
     height : 200 
    }, 1200); 

Prioritäten werden in CSS definiert mit dem Selektor Spezifität. Ihre Wähler Spezifität für #ID war 1.0.0, aber das Hinzufügen img # id jetzt ist 1.0.1 daher die Priorität höher.

+1

Ziemlich sicher, dass das '! Wichtig 'im Stylesheet das überschreiben würde, nein? –

+0

@PlatinumAzure Richtig, nur getestet. – superphonic

2

Sie können CSS-Übergang verwenden, damit es funktioniert, weil CSS-Übergang funktioniert, auch wenn das Attribut style von $ (elem) .attr geändert wird ('style', '...');

Sie verwenden:

js

// the element you want to animate 
$(elem).attr('style', 'your_style_with_important'); 

css

elem { 
    transition: all 0.2 linear; 
    -moz-transition: all 0.2 linear; 
    -webkit-transition: all 0.2 linear; 
}