Czy można zastosować przejścia CSS, aby umożliwić zanikanie akapitu tekstu podczas ładowania strony?
Naprawdę podoba mi się, jak to wyglądało na http://dotmailapp.com/ i chciałbym użyć podobnego efektu za pomocą CSS. Domena została zakupiona i nie ma już wspomnianego efektu. Zarchiwizowaną kopię można wyświetlić na urządzeniu Wayback Machine .
Ilustracja
Posiadanie tego znacznika:
<div id="test">
<p>This is a test</p>
</div>
Z następującą regułą CSS:
#test p {
opacity: 0;
margin-top: 25px;
font-size: 21px;
text-align: center;
-webkit-transition: opacity 2s ease-in;
-moz-transition: opacity 2s ease-in;
-o-transition: opacity 2s ease-in;
-ms-transition: opacity 2s ease-in;
transition: opacity 2s ease-in;
}
Jak można uruchomić przejście po obciążeniu?
css
css-transitions
opacity
użytkownik1556266
źródło
źródło
Odpowiedzi:
Metoda 1:
Jeśli szukasz przejścia z samouwoływaniem, powinieneś użyć animacji CSS 3 . Nie są one również obsługiwane, ale jest to dokładnie to, dla czego zostały stworzone.
CSS
Próbny
Obsługa przeglądarki
Wszystkie nowoczesne przeglądarki i Internet Explorer 10 (i nowsze): http://caniuse.com/#feat=css-animation
Metoda 2:
Alternatywnie możesz użyć jQuery (lub zwykłego JavaScript; zobacz trzeci blok kodu), aby zmienić klasę przy ładowaniu:
jQuery
CSS
Zwykły JavaScript (nie w wersji demo)
Próbny
Obsługa przeglądarki
Wszystkie nowoczesne przeglądarki i Internet Explorer 10 (i nowsze): http://caniuse.com/#feat=css-transitions
Metoda 3:
Możesz także użyć metody używanej przez .Mail :
jQuery
CSS
Próbny
Obsługa przeglądarki
jQuery 1.x : Wszystkie nowoczesne przeglądarki i Internet Explorer 6 (i nowsze): http://jquery.com/browser-support/
jQuery 2.x : Wszystkie nowoczesne przeglądarki i Internet Explorer 9 (i nowsze): http: // jquery.com/browser-support/
Ta metoda jest najbardziej kompatybilna krzyżowo, ponieważ przeglądarka docelowa nie musi obsługiwać przejść ani animacji CSS 3 .
źródło
opacity: 1 !important;
i wstawiłem<noscript>
element.$("#test p").addClass("load");
wielokrotne stosowanie animacji ? Wykonanie$("#test p").removeClass('load').addClass("load");
nie wykonuje zadania, ponieważ animacja już się zatrzymała. Czy mogę uruchomić restart z JavaScript?Możesz użyć
onload=""
atrybutu HTML i JavaScript, aby dostosować styl krycia elementu.Zostaw swój CSS zgodnie z propozycją. Edytuj kod HTML, aby:
Działa to również w celu dodawania całej strony po zakończeniu ładowania:
HTML:
CSS:
Sprawdź stronę W3Schools : przejścia i artykuł na temat zmiany stylów za pomocą JavaScript .
źródło
<div id="test" onload="this.style.opacity='1'">
. Nie jestem jednak pewien, czy oznacza to, że zdarzenie zostanie uruchomione przed załadowaniem całego ciała.W odpowiedzi na pytanie @ AMK o tym, jak robić przejścia bez jQuery. Bardzo prosty przykład, który rzuciłem razem. Gdybym miał czas na przemyślenie tego, mógłbym całkowicie wyeliminować kod JavaScript:
źródło