2011-01-02 17 views
17

Chcę niestandardowy pasek przewijania webkit do animowania innego koloru tła dla stanu hover. Poniższy kod zmienia kolor po najechaniu kursorem, ale nic nie animuje. Działa na div, więc podejrzewam, że webkit-scrollbar nie gra ładnie z przejściami.Czy webkit-scrollbar działa z webkit-transition?

::-webkit-scrollbar-thumb { 
    background-color: #a8a8a8; 
    -webkit-transition: background-color 1s linear; 
} 

::-webkit-scrollbar-thumb:hover { 
    background-color: #f6f6f6; 
} 
+3

Czy kiedykolwiek znaleźć odpowiedź na to pytanie? – roryf

Odpowiedz

4

Nie, to nie jest realizowany. Powinniśmy zgłosić błąd na http://bugs.webkit.org/

+1

Dzięki. Złożyłem na to błąd Radaru. – Scrollwheelie

+4

@Trev: Czy błąd Radar jest publiczny i/lub czy ma on poprawny błąd w bugzilli webkit'a, który możemy śledzić? –

+1

Nadal nie zaimplementowano. :( – marksyzm

1

Nadal można zastosować przejścia, ustawiając -webkit-scrollbar-thumb background-color do inherit i zastosować przejście do elementu nadrzędnego - w tym przypadku samego pojemnika przewijania.

Jedyną wadą jest to, że należy utworzyć wewnętrzny pojemnik, który zamaskuje kolor macierzysty i ustawić tło paska śladu do tego samego koloru maskowania. Tutaj jest przykład:

Zestaw kontenerów kolory i przejście

.container { 
    -webkit-transition: background-color 1s linear; 
    background-color: #fff; 
} 

.container:hover { 
    background-color: #cfcfcf; 
} 

.container .inner { 
    background-color: #FFFFFF; 
} 

Set scrolbar kolory

::-webkit-scrollbar-thumb { 
    background-color: inherit; 
} 

::-webkit-scrollbar-track { 
    background: #fff; 
} 
+0

Sprytny! Powinien być oznaczony jako właściwa odpowiedź. –

0

Jest to dość łatwe do osiągnięcia przy użyciu background-color: inherit; technikę xb1itz w uzupełnieniu z -webkit-background-clip: text; .

Demo na żywo; https://jsfiddle.net/s10f04du/

@media screen and (-webkit-min-device-pixel-ratio:0) { 
    .container { 
    overflow-y: scroll; 
    overflow-x: hidden; 
    background-color: rgba(0,0,0,0); 
    -webkit-background-clip: text; 
    transition: background-color .8s; 
    } 
    .container:hover { 
    background-color: rgba(0,0,0,0.18); 
    } 
    .container::-webkit-scrollbar-thumb { 
    background-color: inherit; 
    } 
}