2012-03-29 20 views
6

prega di consultare la jQuery qui sotto:!come utilizzare importante in jQuery animate() funzione

sto davvero chiedendo come posso usare i CSS per !importantheight in questo codice.

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

Il CSS di #lveis-wrapper_3 è qui sotto:

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

non riesco a rimuovere !important da height: 936px per alcuni motivi ...
quindi voglio cambiare la situazione height da animate() funzione jQuery - ma come ?

+3

Ugh, tutti coloro 'important' ... Deve essere un modo per riorganizzare il codice ... – elclanrs

+0

@! elclanrs grazie per il commento :) – MoonLight

risposta

6

Non puoi farlo.

Secondo ...

"All proprietà animate devono essere animati a un singolo valore numerico ... ... maggior parte delle proprietà che sono non numerico non possono essere animati utilizzando jQuery base funzionalità ..."

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


Consiglio vivamente di riesaminare la tua esigenza di !important.

+2

A volte '! important' è utile. Non possiedo il codice HTML, né posso richiedere una modifica. Ciò significa che dovrò sostituire il loro CSS ecc. Che rende il codice inutilmente più lungo. – Laoujin

+2

@Laoujin, in tutta onestà, non ho detto _ "non usarlo mai" _ o _ "non usarlo" _. Ho solo detto che il suo "bisogno" dovrebbe essere "rivisto". – Sparky

0

Non puoi farlo, ma prova questo!

A seconda che sia un DIV, IMG, ... dovrete fare qualcosa di simile. Questo esempio è nel caso di un'immagine:

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

Le priorità sono definite in CSS con la specificità del selettore. La vostra specificità selettore per #id era 1.0.0, ma aggiungendo img # id ora è 1.0.1, quindi la priorità è più alta.

+1

Abbastanza sicuro che '! Important' nel foglio di stile abbia la precedenza, no? –

+0

@PlatinumAzure corretto, appena testato. – superphonic

2

È possibile utilizzare la transizione css per farlo funzionare, perché la transizione css funzionerà anche se l'attributo style viene modificato da $ (elem) .attr ('style', '...');

si utilizza:

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; 
}