Можно ли использовать CSS-переходы, чтобы позволить текстовому абзацу постепенно появляться при загрузке страницы?
Мне очень нравится, как это выглядит на http://dotmailapp.com/, и я бы хотел использовать подобный эффект с помощью CSS. С тех пор домен был куплен и больше не имеет упомянутого эффекта. Архивная копия может быть просмотрена на Wayback Machine .
иллюстрация
Имея эту разметку:
<div id="test">
<p>This is a test</p>
</div>
Со следующим правилом 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;
}
Как переход может быть запущен при загрузке?
css
css-transitions
opacity
user1556266
источник
источник
Ответы:
Способ 1:
Если вы ищете переход, вызывающий себя, то вы должны использовать CSS 3 Animations . Они также не поддерживаются, но это именно то, для чего они были созданы.
CSS
демонстрация
Поддержка браузера
Все современные браузеры и Internet Explorer 10 (и более поздние версии ): http://caniuse.com/#feat=css-animation
Способ 2:
Кроме того, вы можете использовать jQuery (или простой JavaScript; см. Третий блок кода), чтобы изменить класс при загрузке:
JQuery
CSS
Простой JavaScript (не в демоверсии)
демонстрация
Поддержка браузера
Все современные браузеры и Internet Explorer 10 (и более поздние версии ): http://caniuse.com/#feat=css-transitions
Способ 3:
Или вы можете использовать метод, который использует .Mail :
JQuery
CSS
демонстрация
Поддержка браузера
jQuery 1.x : все современные браузеры и Internet Explorer 6 (и более поздние версии ): http://jquery.com/browser-support/
jQuery 2.x : все современные браузеры и Internet Explorer 9 (и более поздние версии ): http: // jquery.com/browser-support/
Этот метод является наиболее перекрестно совместимым, так как целевой браузер не должен поддерживать переходы или анимацию CSS 3 .
источник
opacity: 1 !important;
и вставил<noscript>
элемент.$("#test p").addClass("load");
несколько раз? Выполнение$("#test p").removeClass('load').addClass("load");
не делает работу, так как анимация уже остановлена. Могу ли я запустить перезагрузку из JavaScript?Вы можете использовать
onload=""
атрибут HTML и JavaScript для настройки стиля непрозрачности вашего элемента.Оставьте свой CSS, как вы предложили. Измените свой HTML-код на:
Это также работает, чтобы добавить всю страницу после завершения загрузки:
HTML:
CSS:
Проверьте w3schools сайт: переходы и статью для изменения стилей с JavaScript .
источник
<div id="test" onload="this.style.opacity='1'">
. Не уверен, означает ли это, что событие запускается до того, как будет загружено все тело.В ответ на вопрос @ AMK о том, как делать переходы без jQuery. Очень простой пример, который я бросил вместе. Если бы у меня было время подумать об этом еще, я мог бы вообще устранить код JavaScript:
источник