2011-10-18 9 views
5

(W przeglądarkach obsługujących przejścia CSS, w tym najnowsze wersje Firefoksa, Safari i Chrome. O dziwo, ten problem nie pojawia się w Operze .)Przejście do CSS migocze za pomocą: odwiedzonego w Safari, Chrome i Firefox, ale nie Opera

Czy ktoś jeszcze to zauważył? Po umieszczeniu przejścia kolorowego na łączu: a: odwiedzone przechodzi do koloru łącza: przed wyświetleniem koloru: hover. Sprawdź:

http://jsfiddle.net/Mgzv9/2/

Czy ten kolor migotanie należy unikać?

+0

Najnowszy Chrome nawet nie robi przejść na odwiedzanych linkach ... – Zade

Odpowiedz

0

Nigdy nie widziałem, aby tak się stało podczas używania koloru. Ale tak się dzieje, gdy używa się obrazów w baground. Jest to bcoz czasu ładowania i można tego uniknąć, wykorzystując wszystkie obrazy przejścia w jednym dużym obrazie i używając właściwości baground-position do sterowania obrazem.

+0

Zdarza się w trzech najnowszych przeglądarkach; sprawdź JSFiddle. – Zade

1

Od pewnego czasu kręciłem się wokół tego problemu.

Chodzi o to, że problem ten jest trudny do odtworzenia.

OK, co się dzieje, czasami podczas ładowania/odświeżania strony z przejściem kolorów na linkach, kolor jest najpierw przenoszony z domyślnego koloru łącza przeglądarki do koloru zdefiniowanego przez CSS. Właściwie to nie dzieje się dla mnie, kiedy otwieram HTML z dysku, ale jeśli umieściłem go na serwerze (nawet na serwerze lokalnym), to pojawia się ten problem.

Aby odtworzyć problemu, należy utworzyć HTML, dodaj stylów i określić przejście do linków, coś takiego:

a { 
    color: red; 
    -webkit-transition: color .5s linear; 
    -moz-transition: color .5s linear; 
    -o-transition: color .5s linear; 
    -ms-transition: color .5s linear; 
    transition: color .5s linear; 
} 

a:hover { 
    color: green; 
} 

... a potem to stylów w kodzie HTML.

Umieść pliki na serwerze i spróbuj otworzyć stronę w Chrome, spróbuj odświeżyć stronę, czasami powinieneś zobaczyć przejście z domyślnego niebieskiego koloru, kiedy strony się ładują.

Po dekonstrukcji niektórych witryn, gdzie wydawało się, że nie ma z tym problemu, wymyśliłem to proste rozwiązanie.

Jeśli włączysz niektóre pliki JavaScript, to po prostu umieść Javascript zawiera PO Twój CSS zawiera.

Działa nawet, jeśli połączysz pusty plik JS po arkuszu stylów.

Mam nadzieję, że to pomoże!

+2

Jak interesujące. Nie znajduję twojej korekty Javascript robi żadnej różnicy. Sprawdź na przykład soulmastery.net. Nie widzę żadnej różnicy między przeglądaniem lokalnych plików i plików serwera. Problem pozostaje w Safari 5.1.2 i Firefox 8.0.1 (z systemem OS X Lion). Na szczęście wygląda na to, że Chrome naprawił problem (w 15.0.874.121). – Zade

+0

Błąd/funkcja (trudno powiedzieć, ponieważ jest to oczywiście wynik jakiegoś zamierzonego zachowania) jest nadal obecny w Chrome 25 i FF 24 - ale poprawka działa. Wpisuję mój JS * z tagu head *, (i powinieneś to umieścić * po css link *) - i to działa! cytuję: "Cokolwiek w głowie musi być zakończone, zanim ciało zostanie załadowane, więc generalnie nie jest dobrym pomysłem umieszczenie tam javascriptu .Jeśli potrzebujesz czegoś, gdy ciało się ładuje, lub chcesz przyspieszyć jakiś ajax, to byłoby to odpowiednie, aby umieścić go w głowie. " Dotyczy to np.wp_head() [WordPress], które powinno iść * tuż przed *. – vaxquis

Powiązane problemy