2011-01-02 14 views
17

Desidero una barra di scorrimento Webkit personalizzata per animare un colore di sfondo diverso per lo stato di passaggio del mouse. Il codice sotto cambia il colore al passaggio del mouse ma non anima nulla. Funziona su un div, quindi sospetto che la barra di scorrimento webkit non giochi con le transizioni.La barra di scorrimento webkit funziona con la transizione del webkit?

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

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

Hai mai trovato una risposta a questo? – roryf

risposta

4

No, non è implementata. Dovremmo aprire un bug su http://bugs.webkit.org/

+1

Grazie. Ho presentato un bug radar per questo. – Scrollwheelie

+4

@Trev: Il bug Radar è pubblico e/o ha un bug equivillo sul bugzilla del webkit da seguire? –

+1

Ancora non implementato. :( – marksyzm

1

È ancora possibile applicare la transizione impostando la -webkit-scrollbar-thumb background-color a inherit e applicare transizione verso elemento padre - in questo caso il contenitore barra di scorrimento stesso.

L'unico inconveniente è che, si deve creare un contenitore interno che mascherare il suo colore genitore e impostare lo sfondo pista barra di scorrimento per lo stesso colore di mascheramento. Qui è un esempio:

colori Set di container e di transizione

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

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

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

colori Set scrolbar

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

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

Clever! Dovrebbe essere contrassegnato come la risposta giusta. –

0

E 'abbastanza facile da raggiungere usando background-color: inherit; tecnica di xb1itz in aggiunta con -webkit-background-clip: text; .

Demo in diretta; 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; 
    } 
} 
Problemi correlati