Przejście koloru tła

286

Próbuję zrobić efekt przejścia background-colorprzy najechaniu kursorem na elementy menu, ale to nie działa. Oto mój kod CSS:

#content #nav a:hover {
    color: black;
    background-color: #AD310B;
    /* Firefox */
    -moz-transition: all 1s ease-in;
    /* WebKit */
    -webkit-transition: all 1s ease-in;
    /* Opera */
    -o-transition: all 1s ease-in;
    /* Standard */
    transition: all 1s ease-in;
}

Jest #nav divto ullista pozycji menu .

jean-guy
źródło
Tylko do Twojej wiadomości, działa teraz w przeglądarce Firefox. Testowane w FF9.
C.Brown

Odpowiedzi:

527

O ile mi wiadomo, przejścia działają obecnie w Safari, Chrome, Firefox, Opera i Internet Explorer 10+.

Powinno to spowodować efekt zanikania w tych przeglądarkach:

a {
    background-color: #FF0;
}

a:hover {
    background-color: #AD310B;
    -webkit-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}
<a>Navigation Link</a>

Uwaga: Jak zauważył Gerald w komentarzach, jeśli umieścisz przejście na a, zamiast na a:hovernim zniknie z powrotem do pierwotnego koloru, gdy mysz odsunie się od linku.

To też może się przydać: Podstawy CSS: Przejścia CSS 3

Ilium
źródło
38
Możesz także wprowadzić przejścia w content #nav acelu przejścia z powrotem do oryginału, gdy użytkownik odsunie mysz od linku.
gak
2
Skrzypce z przejściem po najechaniu kursorem i kliknięciem na: jsfiddle.net/K5Qyx
Dem Pilafian
3
Czy nie lepiej byłoby umieścić tę transition:opcję bez aktywowania? Myślę, że za każdym razem, gdy użytkownik najedzie kursorem, przejście jest kompilowane ..
Matej
1
@Illium Link nie żyje
ferdynator
2
Wygląda na to, że CSS transitionnie obsługuje koloru rodzaju „gradientu liniowego”, co można tutaj przetestować . A tak przy okazji, odpowiedź @ Ilium zasługuje na oznaczenie jako rozwiązanie.
Stacky
84

Dla mnie lepiej jest umieścić kody przejścia z oryginalnymi / minimalnymi selektorami niż z: hover lub innymi dodatkowymi selektorami:

#content #nav a {
    background-color: #FF0;
    
    -webkit-transition: background-color 1000ms linear;
    -moz-transition: background-color 1000ms linear;
    -o-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}

#content #nav a:hover {
    background-color: #AD310B;
}
<div id="content">
    <div id="nav">
        <a href="#link1">Link 1</a>
    </div>
</div>

Reza Mamun
źródło
8
To nie jest tak, że jest lepiej lub gorzej. Tyle, że jeśli określisz przejście na samym lemencie, będzie ono animowane, gdy element zostanie unosi się, a kiedy zostanie „unhovered”. Podczas gdy zastosujesz go do: hover, będziesz mieć animację, gdy mysz wejdzie, ale nie, gdy wyjdzie.
LucasBeef
6
To rozwiązanie jest ogólnie lepsze. Efekt przejścia powinien i powinien zostać zaniknięty po najechaniu myszą, a zaniknie po rozmyciu.
Chizzle,