Можно ли использовать анимацию перехода CSS3 при загрузке страницы без использования Javascript?
Это то, что я хочу, но при загрузке страницы:
http://rilwis.googlecode.com/svn/trunk/demo/image-slider.html
Что я нашел до сих пор
- CSS3 transition-delay , способ задержки эффектов на элементах. Работает только при наведении.
- Ключевой кадр CSS3 , работает под нагрузкой, но очень медленно. Не полезно из-за этого.
- CSS3 переход достаточно быстр, но не анимируется при загрузке страницы.
css
webkit
css-transitions
css-animations
Йенс Торнелл
источник
источник
Ответы:
Вы можете запустить анимацию CSS при загрузке страницы без использования JavaScript; вам просто нужно использовать ключевые кадры CSS3 .
Давайте посмотрим на пример ...
Вот демонстрация скользящего меню навигации только с использованием CSS3 :
Сломай...
Важными частями здесь являются анимация ключевых кадров, которую мы называем
slideInFromLeft
...... который в основном говорит "в начале, заголовок будет от левого края экрана на всю его ширину и в конце будет на месте".
Вторая часть вызывает эту
slideInFromLeft
анимацию:Выше приведена сокращенная версия, но для ясности приведена подробная версия:
Вы можете делать всякие интересные вещи, такие как скольжение по содержанию или привлечение внимания к областям.
Вот что должен сказать W3C.
источник
Очень маленький Javascript необходим:
Теперь CSS:
Я знаю, что вопрос сказал "без Javascript", но я думаю, что стоит отметить, что есть простое решение, включающее одну строку Javascript.
Это может быть даже встроенный Javascript, что-то вроде этого:
Это все, что нужно JavaScript.
источник
body
классов, используйте:document.body.classList.add('loaded)
document.body.className += " loaded";
чтобы быть немного менее многословным для добавления вloaded
класс к существующим классам.Я думаю, что нашел какой-то обходной путь для вопроса OP - вместо перехода, начинающегося с 'on.load' страницы, - я обнаружил, что использование анимации для увеличения непрозрачности имело тот же эффект (я искал тоже самое что и ОП).
Поэтому я хотел, чтобы основной текст при загрузке страницы переходил от белого (такого же, как фон сайта) к черному цвету текста - и я кодирую только с понедельника, поэтому я искал код в стиле «on.load», но пока не знаю JS - вот мой код, который хорошо сработал для меня.
И по какой-то причине, это не работает
.class
только#id
для (по крайней мере, на моем)Надеюсь, это поможет - как я знаю, этот сайт мне очень помогает!
источник
Ну, это сложно.
Ответ "не совсем".
CSS не является функциональным слоем. Он не знает, что происходит и когда. Он используется просто для добавления презентационного слоя к различным «флагам» (классам, идентификаторам, состояниям).
По умолчанию CSS / DOM не предоставляет какого-либо состояния «при загрузке» для использования CSS. Если вы хотите / могли использовать JavaScript, вы должны выделить класс
body
или что-то для активации какого-либо CSS.При этом, вы можете создать взломать для этого. Я приведу здесь пример, но он может или не может быть применим к вашей ситуации.
Мы работаем с предположением, что «close» является «достаточно хорошим»:
Вот выдержка из нашей таблицы стилей CSS:
Мы также предполагаем, что современные браузеры визуализируются постепенно, поэтому наш последний элемент будет отображаться последним, и поэтому этот CSS будет активирован последним.
источник
Аналогично решению @ Rolf, но пропускает ссылку на внешние функции или играет с классом. Если непрозрачность останется фиксированной до 1 после загрузки, просто используйте встроенный скрипт, чтобы напрямую изменить непрозрачность через стиль. Например
где CSS sytle "fadein" определяется для @ Rolf, определяя переход и устанавливая непрозрачность в начальное состояние (то есть 0)
единственная проблема в том, что это не работает с элементами SPAN или DIV, так как у них нет рабочего события onload
источник
Запустите его при наведении на тело, после чего оно начнется, когда мышь впервые начнет двигаться по экрану, что в основном происходит в течение секунды после прибытия, проблема в том, что она перевернется, когда выйдет из экрана.
это лучшее, что я могу придумать: http://jsfiddle.net/faVLX/
Полноэкранный режим: http://jsfiddle.net/faVLX/embedded/result/
Редактирование см. В комментариях ниже:
Это не будет работать на любом устройстве с сенсорным экраном, потому что нет наведения, поэтому пользователь не увидит контент, если не коснется его. - Рич Брэдшоу
источник
CSS только с задержкой 3 с
несколько моментов, чтобы взять здесь:
Код:
источник
Хорошо, мне удалось добиться анимации, когда страница загружается, используя только CSS-переходы (вроде!):
Я создал 2 таблицы стилей CSS: во-первых, как я хочу, чтобы стиль HTML до анимации ... и во-вторых, как я хочу, чтобы страница выглядела после анимации.
Я не до конца понимаю, как я это сделал, но он работает только тогда, когда два файла CSS (оба в заголовке моего документа) разделены каким-то javascript следующим образом.
Я проверил это с Firefox, сафари и оперой. Иногда анимация работает, иногда она сразу переходит ко второму CSS-файлу, а иногда кажется, что страница загружается, но ничего не отображается (возможно, это только я?)
Вот ссылка на мой незавершенный веб-сайт: http://www.hankins-design.co.uk/beta2/test/index.html
Может быть, я ошибаюсь, но я думал, что браузеры, которые не поддерживают переходы CSS, не должны иметь никаких проблем, так как они должны переходить сразу ко второму файлу CSS без задержки или продолжительности.
Мне интересно узнать мнение о том, насколько этот метод подходит для поисковых систем. С моей черной шляпой, я полагаю, я мог бы заполнить страницу ключевыми словами и применить задержку в 9999 к ее непрозрачности.
Мне было бы интересно узнать, как поисковые системы работают с атрибутом transition-delay и могут ли они, используя описанный выше метод, даже видеть ссылки и информацию на странице.
Что еще более важно, я действительно хотел бы знать, почему это не согласовано каждый раз, когда страница загружается, и как я могу это исправить!
Я надеюсь, что это может генерировать некоторые взгляды и мнения, если ничего больше!
источник
Если у кого-то еще были проблемы с двумя переходами одновременно, вот что я сделал. Мне нужно было текст сверху донизу при загрузке страницы.
HTML
HTML
CSS
Не знаю, почему я продолжал пытаться использовать 2 объявления перехода в 1 селекторе и (не совсем) думал, что он будет использовать оба.
источник
Еще более простое решение (все еще с javascript [одной строкой]):
Используйте это как тег body: Обратите внимание, что
body.
илиthis.
у меня не получилось. Только длинный;querySelector
разрешить использованиеclassList.remove
(Linux Chromium)и добавьте эту строку поверх ваших других правил CSS.
Обратите внимание, что это может применяться к непрозрачности (в соответствии с запросом OP [другие авторы]), просто используя вместо этого непрозрачность в качестве триггера перехода. (может даже работать на любом другом решении CSS таким же образом, и вы можете использовать несколько классов для задержки экспликации между запусками)
Логика та же. Не применять преобразование (со
:none !important
всеми дочерними элементамиbody.onload
и после загрузки документа удалите класс, чтобы инициировать все переходы для всех элементов, как указано в вашем CSS.ПЕРВЫЙ ОТВЕТ НИЖЕ (СМ. РЕДАКТИРОВАТЬ ВЫШЕ ДЛЯ ОТВЕТА НА ШОРТЕР)
Вот обратное решение:
Работает с несколькими переходами на несколько элементов. Не пробовал кросс-браузерную совместимость.
источник
Не совсем, так как CSS применяется как можно скорее, но элементы могут быть еще не прорисованы. Вы можете угадать задержку в 1 или 2 секунды, но для большинства людей это будет выглядеть неправильно, в зависимости от скорости их интернета.
Кроме того, если вы хотите что-то добавить, например, потребуется CSS, который скрывает доставляемый контент. Если у пользователя нет переходов CSS3, он никогда не увидит его.
Я бы рекомендовал использовать jQuery (для простоты использования + вы можете добавить анимацию для других UA) и некоторые JS, подобные этому:
Наряду с переходами, добавленными в CSS. Это имеет то преимущество, что при необходимости можно легко использовать animate вместо второго CSS в устаревших браузерах.
источник
#id_to_fade in
, хотя я согласен, это не так ясно из ответа.#id_to_fade_in { -webkit-transition:opacity 0.5s ease-in-out; }
+-o-
,-moz-
префиксы , а также.