2012-08-07 17 views
23

Jak mogę to zrobić, aby przejście CSS nie działało w zapytaniu o media lub w żadnym innym przypadku? Na przykład:Ustawia przejście CSS3 na żadne z nich.

@media (min-width: 200px) { 
    element { 
     transition: width 1s; 
    } 
} 

@media (min-width: 600px) { 
    element { 
     transition: none; // SET TO NO TRANSITION 
    } 
} 

Odpowiedz

49

Można ustawić wartość przejściową na none. W ten sposób nie zostanie zastosowany żaden efekt przejścia.

Jak to:

-webkit-transition-property: none; 
-moz-transition-property: none; 
-o-transition-property: none; 
transition-property: none; 
+0

Czy standardowa właściwość nie powinna być ostatnia po specyficznych dla dostawcy? – Daze

+0

Zgadza się. –

+12

Nie możesz po prostu ustawić 'transition: none' (w razie potrzeby z prefiksem)? – tomekwi

2
transition: width 0s 

powinno załatwić sprawę - jak to w zasadzie mówi, że tam jest przejście, ale 0s jest zbyt szybkie, aby go zobaczyć!

+1

Naprawdę nie jest to rozwiązanie, jeśli przejście jest skalowanie elementu – PUG

+0

Dzięki! Kod nie jest zbyt długi :) –

1

Nawet lepiej niż ustawienie przejściowego własności do żaden wyznacza przejściowy okres do 0s.

Jest to kod cross-browser:

-webkit-transition-duration: 0s; 
-moz-transition-duration: 0s; 
-o-transition-duration: 0s; 
transition-duration: 0s; 

Dlaczego to jest lepsze? Ponieważ domyślnie przeglądarki zgodne z normami (takie jak Firefox) ustawiają właściwość przejściową na wszystkie dla każdego elementu. Ustawiono również czas przejścia na 0s. Dlatego ustawiając czas przejścia na czas na 0s, najlepiej pasujesz do sposobu, w jaki przeglądarka definiuje element bez przejścia.

Ustawianie przejściowy okres do domyślnego 0s renderuje przejściowego własności znaczenia.

Powiązane problemy