2016-05-10 22 views
5

Mam animację CSS na stronie internetowej, aby wywołać efekt na przycisku.Animacja CSS Błąd w Firefoksie

W Chrome i IE jest dobrze, ale w Firefoksie mam brzydki problem.

enter image description here

Niektóre białe kawałki wciąż stoi po najechaniu.

animacji CSS:

.Hotel:hover{ 
    animation-name: pulse; 
    animation-duration: 1s; 
} 


@-webkit-keyframes pulse { 
    from { 
    -webkit-transform: scale3d(1, 1, 1); 
    transform: scale3d(1, 1, 1); 
    } 

    50% { 
    -webkit-transform: scale3d(100.10, 10.10, 10.10); 
    transform: scale3d(100.10, 10.10, 10.10); 
    } 

    to { 
    -webkit-transform: scale3d(1, 1, 1); 
    transform: scale3d(1, 1, 1); 
    } 
} 

@keyframes pulse { 
    from { 
    -webkit-transform: scale3d(1, 1, 1); 
    transform: scale3d(1, 1, 1); 
    } 

    50% { 
    -webkit-transform: scale3d(1.80, 1.80, 1.80); 
    transform: scale3d(1.80, 1.80, 1.80); 
    } 

    to { 
    -webkit-transform: scale3d(1, 1, 1); 
    transform: scale3d(1, 1, 1); 
    } 
} 

enter image description here

+0

Po prostu przetestowano to na Firefox i Firefox Dev-Edition na Macu i wygląda dobrze. Czy dzieje się to w oknach? A jeśli tak, jaka jest twoja wersja firefox? – nils

+0

firefox 46 ubuntu, też wygląda dobrze. – Raduken

+0

yes for windows FF: 45.0.2 – Felix

Odpowiedz

4

wszystko wygląda dobrze może to być spowodowane ustawieniami akceleracji sprzętowej nie być na

akceleracji sprzętowej, gdy użycie dostępnych włączony.

Obecnie przeglądarkach takich jak Chrome, Firefox, Safari, IE9 + i najnowszej wersji Opery cały statek z przyspieszeniem sprzętowym; używają go tylko , gdy mają wskazówkę, że korzystałby z tego element DOM. W CSS najsilniejszym wskazaniem jest to, że transformacja 3D jest zastosowana do elementu. Od kiedy już to zrobiono, wtedy inne niż akceleracja sprzętowa nie wydaje się być problemem w mojej przeglądarce.

W przeglądarkach Chrome i Safari możemy zobaczyć migotanie podczas korzystania z transformacji CSS lub animacji. Następujące deklaracje mogą być wykorzystane, aby rozwiązać problem:

.className{ 
    -webkit-backface-visibility: hidden; 
    -moz-backface-visibility: hidden; 

    backface-visibility: hidden; 

    -webkit-perspective: 1000; 
    -moz-perspective: 1000; 
    perspective: 1000; 
    /* Other transform properties here */ 
} 

Inną metodą, która wydaje się działać dobrze w WebKit zasilany stacjonarnych i mobilnych przeglądarek jest translate3d:

.className{ 
    -webkit-transform: translate3d(0, 0, 0); 
    -moz-transform: translate3d(0, 0, 0); 
    transform: translate3d(0, 0, 0); 
    /* Other transform properties here */ 
} 

natywne aplikacje mobilne również dobrze wykorzystać urządzenia GPU - dzięki temu wiadomo, że działają nieco lepiej niż aplikacje internetowe. Przyspieszanie sprzętowe może być szczególnie przydatne na urządzeniach mobilnych, ponieważ pomaga zmniejszyć zużycie zasobów urządzenia.

+0

która klasa css powinna uzyskać te opcje? – Felix

+0

Felix dodaje te wewnętrzne klasy hover i jaka jest twoja wersja przeglądarki i czy włączono ustawienie przyspieszenia sprzętowego. I dołącza zawartość hover class po czasie trwania animacji –

+0

przyspieszenie sprzętowe działa dobrze. pierwsze opcje dodane do: flagi - tak wygląda dobrze FireFox, ale nie działa w IE 11 teraz .. – Felix

Powiązane problemy