Как сделать движущуюся картинку в html
Перейти к содержимому

Как сделать движущуюся картинку в html

  • автор:

Вставка анимации на сайт HTML

Анимированные изображения являются более привлекательными для пользователей. Именно на них в первую очередь обращают внимание посетители сайта.
Наиболее распространёнными форматами анимации, встраиваемыми в сайты являются GIF и SWF. GIF — наиболее простой в создании формат анимации, SWF, в свою очередь, является более сложным, но при этом более функциональным.

Для начала рассмотрим, как вставить анимацию на сайт HTML на примере GIF:

  • Создайте GIF-анимацию при помощи специализированных программ, либо других графических редакторов, поддерживающих данную функцию, или скачайте готовую анимацию из любого банка изображений.
  • Загрузите готовый файл в необходимую директорию.
  • Откройте нужную страницу вашего сайта и найдите в коде место, куда собираетесь вставить баннер.
  • Используйте HTML-код аналогичный коду для вставки изображений:

Далее рассмотрим вставку Flash-анимации в HTML.

Существуют два основных метода вставки Flash-контента в HTML-страницу.

  • При помощи тега — более ранний и гибкий в настройке элемент, позволяющий задать больше параметров для вставки благодаря большому количеству поддерживаемых атрибутов.
  • При помощи тега — более новый элемент, получивший официальную поддержку лишь с приходом стандарта HTML 5. Является более простым способом и подходит только для страниц, написанных согласно новым спецификациям. Имеет меньше параметров для настройки.

Рассмотрим, как вставить флеш в HTML на примере вставки баннера.

  • Создайте Flash-ролик и сохраните его в формате .swf.
  • 2 и 3 пункты аналогичны вставке GIF-анимации.
  • Вставьте в код страницы код блока с flash-контентом при помощи тегов , либо и их атрибутов, указывающих адрес, тип, размеры вставляемого объекта.

Похожие статьи

Создание фона на HTML странице

Основы создания уникального стиля сайта

Создаём продающий сайт

Остались вопросы?

Москва, Певческий переулок, 4 стр. 1

© London Advertising 2012-2023

Задать вопрос

Оставьте свои контактные данные и мы ответим на ваш вопрос

Политика конфидециальности

Общие положения.

Настоящая политика обработки персональных данных составлена в соответствии с требованиями Федерального закона от 27.07.2006. №152-ФЗ «О персональных данных» и определяет порядок обработки персональных данных и меры по обеспечению безопасности персональных данных ИП Бабийчук Кирилл Руслланович (далее – Оператор). Оператор ставит своей важнейшей целью и условием осуществления своей деятельности соблюдение прав и свобод человека и гражданина при обработке его персональных данных, в том числе защиты прав на неприкосновенность частной жизни, личную и семейную тайну.

Настоящая политика Оператора в отношении обработки персональных данных (далее – Политика) применяется ко всей информации, которую Оператор может получить о посетителях веб-сайта https://london-adv.ru.

  1. Основные понятия, используемые в Политике
    Автоматизированная обработка персональных данных – обработка персональных данных с помощью средств вычислительной техники;
    Блокирование персональных данных – временное прекращение обработки персональных данных (за исключением случаев, если обработка необходима для уточнения персональных данных);
    Веб-сайт – совокупность графических и информационных материалов, а также программ для ЭВМ и баз данных, обеспечивающих их доступность в сети интернет по сетевому адресу https://london-adv.ru;
    Информационная система персональных данных — совокупность содержащихся в базах данных персональных данных, и обеспечивающих их обработку информационных технологий и технических средств;
    Обезличивание персональных данных — действия, в результате которых невозможно определить без использования дополнительной информации принадлежность персональных данных конкретному Пользователю или иному субъекту персональных данных;
    Обработка персональных данных – любое действие (операция) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных;
    Оператор – государственный орган, муниципальный орган, юридическое или физическое лицо, самостоятельно или совместно с другими лицами организующие и (или) осуществляющие обработку персональных данных, а также определяющие цели обработки персональных данных, состав персональных данных, подлежащих обработке, действия (операции), совершаемые с персональными данными;
    Персональные данные – любая информация, относящаяся прямо или косвенно к определенному или определяемому Пользователю веб-сайта https://london-adv.ru; Пользователь – любой посетитель веб-сайта https://london-adv.ru; Предоставление персональных данных – действия, направленные на раскрытие персональных данных определенному лицу или определенному кругу лиц; Распространение персональных данных – любые действия, направленные на раскрытие персональных данных неопределенному кругу лиц (передача персональных данных) или на ознакомление с персональными данными неограниченного круга лиц, в том числе обнародование персональных данных в средствах массовой информации, размещение в информационно-телекоммуникационных сетях или предоставление доступа к персональным данным каким-либо иным способом;
    Трансграничная передача персональных данных – передача персональных данных на территорию иностранного государства органу власти иностранного государства, иностранному физическому или иностранному юридическому лицу;
    Уничтожение персональных данных – любые действия, в результате которых персональные данные уничтожаются безвозвратно с невозможностью дальнейшего восстановления содержания персональных данных в информационной системе персональных данных и (или) результате которых уничтожаются материальные носители персональных данных.
  2. Оператор может обрабатывать следующие персональные данные Пользователя Фамилия, имя, отчество;
    Электронный адрес;
    Номера телефонов;
    Также на сайте происходит сбор и обработка обезличенных данных о посетителях (в т.ч. файлов «cookie») с помощью сервисов интернет-статистики (Яндекс Метрика и Гугл Аналитика и других).
    Вышеперечисленные данные далее по тексту Политики объединены общим понятием Персональные данные.
  3. Цели обработки персональных данных Цель обработки персональных данных Пользователя — информирование Пользователя посредством отправки электронных писем.
    Также Оператор имеет право направлять Пользователю уведомления о новых продуктах и услугах, специальных предложениях и различных событиях. Пользователь всегда может отказаться от получения информационных сообщений, направив Оператору письмо на адрес электронной почты info@london-adv.ru с пометкой «Отказ от уведомлениях о новых продуктах и услугах и специальных предложениях». Обезличенные данные Пользователей, собираемые с помощью сервисов интернет-статистики, служат для сбора информации о действиях Пользователей на сайте, улучшения качества сайта и его содержания.
  4. Правовые основания обработки персональных данных Оператор обрабатывает персональные данные Пользователя только в случае их заполнения и/или отправки Пользователем самостоятельно через специальные формы, расположенные на сайте https://london-adv.ru. Заполняя соответствующие формы и/или отправляя свои персональные данные Оператору, Пользователь выражает свое согласие с данной Политикой.
    Оператор обрабатывает обезличенные данные о Пользователе в случае, если это разрешено в настройках браузера Пользователя (включено сохранение файлов «cookie» и использование технологии JavaScript).
  5. Порядок сбора, хранения, передачи и других видов обработки персональных данных Безопасность персональных данных, которые обрабатываются Оператором, обеспечивается путем реализации правовых, организационных и технических мер, необходимых для выполнения в полном объеме требований действующего законодательства в области защиты персональных данных.
    Оператор обеспечивает сохранность персональных данных и принимает все возможные меры, исключающие доступ к персональным данным неуполномоченных лиц. Персональные данные Пользователя никогда, ни при каких условиях не будут переданы третьим лицам, за исключением случаев, связанных с исполнением действующего законодательства.
    В случае выявления неточностей в персональных данных, Пользователь может актуализировать их самостоятельно, путем направления Оператору уведомление на адрес электронной почты Оператора info@london-adv.ru с пометкой «Актуализация персональных данных».
    Срок обработки персональных данных является неограниченным. Пользователь может в любой момент отозвать свое согласие на обработку персональных данных, направив Оператору уведомление посредством электронной почты на электронный адрес Оператора info@london-adv.ru с пометкой «Отзыв согласия на обработку персональных данных».
  6. Трансграничная передача персональных данных
    Оператор до начала осуществления трансграничной передачи персональных данных обязан убедиться в том, что иностранным государством, на территорию которого предполагается осуществлять передачу персональных данных, обеспечивается надежная защита прав субъектов персональных данных.
    Трансграничная передача персональных данных на территории иностранных государств, не отвечающих вышеуказанным требованиям, может осуществляться только в случае наличия согласия в письменной форме субъекта персональных данных на трансграничную передачу его персональных данных и/или исполнения договора, стороной которого является субъект персональных данных.
  7. Заключительные положения
    Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты info@london-adv.ru. В данном документе будут отражены любые изменения политики обработки персональных данных Оператором. Политика действует бессрочно до замены ее новой версией. Актуальная версия Политики в свободном доступе расположена в сети Интернет по адресу https://london-adv.ru.

Движущиеся рисунки

Создал данную страницу для изучения кодов JavaScript, позволяющих заставить рисунки в форматах, не поддерживающих простую (GIF) анимацию, двигаться.

Для испытаний использовал несколько подходящих, интересных кодов, найденных мною в интернете, и несколько простых изображений, которые перевёл в формат PNG.

Кстати! Для анимации рисунков на JavaScript не имеет значения , какой формат они будут иметь.

Сначала показываю результаты испытаний, т.е. примеры такой анимации, а потом уже объясняю, как удалось заставить рисунки двигаться и, как настроить их код движения.

Примеры движущихся рисунков

Для просмотра эффекта движения рисунков, кликните по любому из представленных ниже. Можно по всем сразу и в любое время.
Каждый «клик» будет возвращать изображение машинки в исходное положение, и она станет двигаться по-новой. Забавно получается! Что-то вроде «автогонок».

** Чтобы вернуть рисунки в исходное (неподвижное) состояние, страницу нужно перезагрузить.

Чёрно-белая движущаяся машинка
Красная движущаяся машинка
Жёлтая движущаяся машинка

Мне больше нравятся более простые скрипты, и поэтому под этой строчкой я сохранил более сложный код (*закомментировал) для 1-ого рисунка чёрно-белой машинки. Он полностью рабочий, хорошо сочетается с кодами цветных машинок, и очень подробно прокомментирован. НО! Если его запустить, перестанет работать самый интересный, пожалуй, но и самый сложный код четвёртого примера движения.

Четвёртый пример движущегося рисунка

Вовсе не случайно назвал этот пример работы JavaScript-кода самым интересным и сложным. Я составил его из 3-ёх самостоятельных скриптов, которые объединил в одном тэге таким вот образом: .

Первая часть кода только лишь сдвигает рисунок мяча с лева на право, но 1 раз, при загрузке или перезагрузке страницы. И управлять им нельзя. А вот следующие коды уже гораздо более интересные.
Они позволяют «играть с мячом», кликая по нему.

** Чтобы просмотреть весь пример движения рисунка заново, страницу нужно перезагрузить.

Движущийся футбольный мяч

Надеюсь, показанные примеры движущихся рисунков, Вам понравились. Ну, а теперь самое главное!

Как сделать рисунок движущимся

Движение, т.е. анимация, с точки зрения JavaScript — это постепенные изменения в так называемом «DOM-дереве» (объектной модели документа), с которой он и работает, внося в модель прописанные в его коде «новшества» для элементов этого «дерева»: изменение координат расположения, размеров, цвета, и так далее.

Поэтому, чтобы заставить рисунок двигаться, сначала нужно прописать его в HTML-коде страницы, присвоив ему идентификатор.

После обязательно(!) прописать этот же идентификатор в таблице стилей CSS , указав тип его позиционирования (position). У меня движущихся рисунков несколько, поэтому я их там все перечислил. Это важно(!) , иначе скрипты работать не будут!

В данном случае — прописал крохотную табличку стилей в конце тэга .

И, наконец, добавил в HTML-код страницы подходящие js-скрипты, которые, оказывая воздействие через «DOM-дерево» на браузер пользователя , собственно, и делают любой рисунок движущимся.

Всё. Готово! Изображения двигаются, как им «велят» скрипты.

Кстати! Все использованные javascript-коды подробно прокомментировал .

Не стал выводить их на экран. Желающим скачать коды движущихся рисунков, будет достаточно открыть исходный код этой веб-страницы моего сайта.

А я дальше расскажу немного о некоторых наблюдениях, сделанных во время изучения и тестирования основных параметров использованных js-кодов движения.

Основные параметры скриптов

При изучении и тестировании применённых скриптов, разбирался с несколькими интересными функциями и методами, о которых и рассказываю в этом подразделе.

var start = Date.now(); – глобальная переменная, запускающая анимацию сразу при загрузке страницы.

name.onclick = function() – переменная, запускающая функцию движения, но НЕ сразу, а только по клику.

duration – устанавливает длительность движения в миллисекундах.
Если поставить этот параметр в значение 3000, то объект анимации уедет дальше. А если задать 5000, то он вообще уедет с сайта, и сильно увеличится нижний скролл.
Кстати! Сайт он при этом не растягивает (у меня жёсткая вёрстка), но становится виден справа большой кусок серого фона тэга .

draw – метод, с помощью которого отрисовывается каждый этап состояния рисунка.

draw(progress); — функция, получающая состояние движения, и рисующая его. Так, скажем, значению progress = 0 соответствует его начальная точка, а progress = 1 , соответственно, конечная.
Именно эта функция осуществляет движение вверх/вниз 4-ого рисунка (мяча).

time или timer или timing – используются в разных выражениях скриптов, т.е. там, где что-либо связано с временем движения рисунков.

timePassed — метод для вычисления и установки счётчика времени движения.

setTimeout — метод, запускающий функцию, но лишь однократно (здесь, то есть в этих скриптах, такой метод не используется) .

setInterval — метод, имеющий такое же назначение и такой же синтаксис, как и выше упомянутый setTimeout , только он запускает выполнение функции НЕ один раз, а регулярно повторяет её через прописанный в коде интервал времени.

clearInterval(timer); – метод, позволяющий остановить выполнение скриптов движения.

timePassed / 5 + ‘px’; — выражение, контролирующее как далеко(?) продвинется рисунок. Чем меньше цифра, тем дальше «уедет».
К примеру, поставив 1, он «уезжает» далеко за пределы сайта. Его действие аналогично duration (сказал о нём в начале подраздела) . вспомнить:

ball.style.top = progress * 200 + ‘px’; — это выражение указывает рисунку мяча куда(?), и как далеко(?) нужно двигаться.
Поставив в него 500, мяч будет очень далеко «упрыгивать». Если вставить в него bottom вместо top (как есть сейчас), то мяч будет прыгать вверх.

Думаю, вполне достаточно рассказал об основных параметрах и их настройке, использованных здесь скриптов движения.

Послесловие о движущихся рисунках

Конечно, показанные примеры создания движущихся рисунков с помощью JavaScript интересны, но есть и другие способы заставить рисунки двигаться.

И об одном из таких способов, на мой взгляд не менее интересном(!) , подробно, с примерами, узнаете здесь: «SVG-анимация» (откроется в новом окне) .

Ну, а самый простой способ создания движущихся рисунков — только с помощью HTML(!) — найдёте в подразделе «Движущийся рекламный текст-рисунок» страницы «Текстовые эффекты» (откроется в новом окне) .

Посмотреть другие интересные примеры анимации рисунков сможете, вернувшись в общий раздел «JavaScript» , кликнув по нижней синей навигационной стрелке.

Все права защищены. Copyright © 2009 — Коротеев Владимир.

Учимся создавать анимированные эффекты с помощью CSS3

Сегодня я хочу познакомить вас с различными эффектами анимации для сайта, которые можно реализовать при помощи CSS3 .

  • Картинки;
  • Шрифт Viga (Google-шрифт).

Скачать исходные файлы

Я хочу показать, как превратить изображение в форме квадрата ( с закругленными углами ) в окружность. При наведении на изображение его форма будет плавно меняться на окружность в течение 1 секунды. После этого мы установим для нее 50% радиуса, чтобы получить идеальный круг.

Разметка

HTML-код будет состоять из изображения, обернутого в с заданным классом эффекта. Мы также используем класс morph ( для эффекта превращения ):

CSS-код

В нем мы зададим размер для изображения 200 на 200px , и границу белого цвета толщиной 10px . Также добавим радиус со значением 15px , чтобы слегка закруглить углы. Скроем все, что выходит за пределы видимого изображения. Для события mouse-over мы установим курсор pointer :

.img < width: 200px; height: 200px; border: 10px solid #fff; -webkit-border-radius: 15px; border-radius: 15px; overflow: hidden; >.img:hover

Для анимации на сайте HTML эффекта превращения мы воспользуемся CSS3-свойством transition . Сначала укажем специфические браузерные свойства ( -webkit , -moz , -ms , -o ), и установим значение all 1s ease . Это позволит нам растянуть переход на 1 секунду при наведении на изображение курсора мыши.

Чтобы лучше понять, как работают переходы CSS , я предлагаю вам изучить приведенный ниже синтаксис:

transition: [transition-property] [transition-duration] [transition-timing-function] ;

  • [transition-property] применяется для указания конкретных стилей или свойств, которые нужно использовать ( background , width и т. д ). Мы используем all , чтобы применить эффект ко всем свойствам;
  • [transition-duration] отвечает за скорость анимации или перехода. В нашем примере используется значение 1s . Это значит, что анимация будет длиться 1 секунду. Учтите, что если скорость не будет определена, то у перехода не будет никакого эффекта;
  • [transition-timing-function] определяет, как будет вычисляться скорость во время перехода. Стандартным значением [transition-timing-function] является ease . Это значит, что эффект будет начинаться с медленного темпа, затем разгонится, а в конце снова слегка замедлится.

Далее мы добавляем стили для состояния mouse-over . Используем белую границу толщиной 10px , а также закругленные углы border-radius: 50% . За счет чего у нас получится идеальный круг при наведении курсора мыши. Мы также добавим тень блока, чтобы получить эффект свечения:

.morph < -webkit-transition: all 1s ease; -moz-transition: all 1s ease; -ms-transition: all 1s ease; -o-transition: all 1s ease; transition: all 1s ease; >.morph:hover

CSS-код

В качестве смещения анимации для сайта мы воспользуемся эффектом увеличения. При наведении курсора мыши изображение окажется чуть ближе к границам, а все лишнее будет скрыто.

Разметка

HTML-разметка будет той же, что и при эффекте превращения, но на этот раз вместе с классом img мы используем класс zoom ( для эффекта увеличения ):

CSS-код

Мы указываем базовую ширину и высоту: 200 на 200 px . Затем снова воспользуемся эффектом перехода, но теперь установим время 2 секунды, что позволит придать выразительности при возникновении события mouse-over . Также мы добавим по 100 px к ширине и высоте, что позволит создать иллюзию увеличения.

Если вы вернетесь к CSS-коду для нашего изображения, то увидите, что мы скрываем все, что выходит за его пределы. Это позволит удержать изображение внутри границ. Кроме этого мы добавим тень блока для эффекта свечения:

.zoom img < width: 200px; height: 200px; -webkit-transition: all 2s ease; -moz-transition: all 2s ease; -ms-transition: all 2s ease; -o-transition: all 2s ease; transition: all 2s ease; >.zoom img:hover

CSS-код

Позиция

Перед тем, как вставить анимацию на сайт, нужно понять ее сущность. В рамках этого эффекта мы слегка наклоним изображение. Эффект может выглядеть иначе в зависимости от установленной продолжительности анимации и градуса наклона. Обратите внимание, что длительность меняется путем изменения значения 0.3s .

Также с помощью transform можно указать, насколько сильно будет наклонено изображение. Свойство Transform позволяет изменять форму элемента, его размер и расположение. Можно изменять эффект за счет смены значения rotate ( 10deg ) ( 10 градусов ).

Разметка

По разметке все то же самое, за исключением того, что вместе с классом img мы укажем еще и класс tilt :

CSS-код

Мы снова добавляем эффекты переходов ( transition ), но для начала указываем браузерные свойства. На этот раз нам нужно, чтобы все происходило медленно, и поэтому мы устанавливаем значение 0.3 миллисекунды.

Далее мы переходим к mouse-over , для которого используем свойство transform . Это свойство позволяет вращать, масштабировать, перемещать и искажать элементы.

После этого мы добавляем свойство rotate со значением 10 градусов . При наведении курсора мыши элемент изменит свою позицию на 10 градусов от исходного положения. И наконец, добавляем тени, чтобы получить эффект свечения анимации для сайта:

.tilt < -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; -o-transition: all 0.3s ease; -ms-transition: all 0.3s ease; transition: all 0.3s ease; >.tilt:hover

CSS-код

Цвет

В качестве примера мы попробуем сбросить все цвета и создать нечто вроде монохромного эффекта при наведении. Это можно реализовать при помощи webkit filter . Это свойство, которое применяется к элементу по мере того, как он прорисовывается в документе. Как в эффектах Photoshop , которые позволяют изменять яркость цветов.

Затем мы устанавливаем значение перехода на all 1s ease , чтобы получить плавный эффект при наведении курсора мыши.

Разметка

Повторяем предыдущий HTML-код , но на этот раз применяем класс color вместе с классом img :

CSS-код

Снова повторяем код перехода. Устанавливаем его на 1 секунду, а эффект тайминга на ease .

Что касается mouse-over , то для него мы воспользуемся свойством webkit-filter , а затем понизим цветность при помощи свойства grayscale . После этого добавим тень блока, чтобы получить уже привычный нам эффект анимации на сайте HTML :

.color < -webkit-transition: all 1s ease; -moz-transition: all 1s ease; -o-transition: all 1s ease; -ms-transition: all 1s ease; transition: all 1s ease; >.color:hover

CSS-код

Совет: таким же образом можно применять размытие, сепию, инверсию цвета, увеличить цветность изображения или элемента при наведении. Просто добавляйте нужное значение в скобки.

Размытие
-webkit-filter: blur(3px);
Сепия
-webkit-filter: sepia(100%);
Сепия
-webkit-filter: sepia(5%);
Инверсия
-webkit-filter: invert(0.2);
Цветность
-webkit-filter: saturate(50%);

CSS3-переходы позволяют элементу плавно менять стиль. Это очень удобно, если вы не разбираетесь в программировании, но при этом хотите создавать красивые эффекты анимации для сайта.

Оживляем сайт при помощи Animate.css

Представляем вашему вниманию Animate.css – бесплатную CSS-библиотеку , созданную Дэном Эденом . Она состоит из 50 кроссбраузерных CSS-анимаций . Мы попробуем создать анимации при помощи Animate.css .

  • Reset.css ;
  • Animate.css ;
  • Raleway ( Google-шрифт );
  • Open Sans ( Google-шрифт );
  • Flat Icons ( можно выбрать любую иконку );
  • Фоновые картинки.

Скачать исходные файлы

Структура папок

Структура папок

Проект состоит из HTML-файлов , папки с картинками и папки для CSS-файлов :

  • index.html – наш основной файл;
  • images – папка для картинок;
  • css – папка для файлов стилей.

Над чем работаем:

Структура папок - 2

Приступаем к работе

Перед тем, как вставить анимацию на сайт HTML и начать работу над разметкой, в шапку страницы добавим HTML5 doctype и несколько ссылок. Здесь будут представлены ссылки на CSS-файлы и библиотеки Google-шрифтов :

<html> <head> <meta charset="utf-8"> <title>Bring Your Website to Life Using Animate.css</title> <meta content="width=device-width,initial-scale=1" name="viewport"> <!-- stylesheet --> <link href="css/reset.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <link href="css/animate.css" rel="stylesheet"><!-- font faces --> <link href='http://fonts.googleapis.com/css?family=Raleway:800,300' rel= 'stylesheet' type='text/css'> <link href= 'http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,700italic,800italic,400,600,300,700,800' rel='stylesheet' type='text/css'> </head>

HTML-код

В HTML мы обернем все содержимое в контейнер с ID wrapper :

<body> <div Cover

В разделе Cover мы обернем все внутрь контейнера с ID cover, за которым последует класс container , что поможет нам центрировать все элементы. Далее мы создадим две колонки и расположим их по левому и правому краю:

<section CSS animations</h3> <h2>Animate.CSS</h2>

Animate.css – бесплатная CSS-библиотека , созданная Дэном Эденом . Она состоит из 50 кроссбраузерных CSS-анимаций , которые позволят не писать код вручную и анимировать элементы на странице:

</div> <div align="right" src= "images/browser.png"></div> <br </div> </section>

Раздел Features

В Features мы делаем то же самое, что и в предыдущем разделе анимации для сайта. Но на этот раз разделим каждую колонку при помощи классов column и one-third :

<section можно получить при помощи Animate.CSS</h2> <div one-third"> <img alt="" src="https://www.internet-technologies.ru/articles/images/icon_html5.png"> <h4>HTML5-совместимость</h4> Совместимая с HTML5 разметка с применением быстрых анимаций на CSS3 </div> <div one-third"> <img alt="" src="https://www.internet-technologies.ru/articles/images/icon_animation.png"> <h4>Невероятные анимации</h4> Библиотека укомплектована множеством анимаций, которые вы сможете использовать в собственных проектах. </div> <div one-third last"> <img alt="" src="https://www.internet-technologies.ru/articles/images/icon_w3c.png"> <h4>Соответствие требованиям W3C</h4> Библиотека была разработана с учетом стандартов W3C. </div> </div> </div> </section>

Раздел Effects

В этом разделе анимации на сайте HTML мы отделим колонки при помощи классов column и one-fourth , так как здесь нам потребуется четыре колонки:

<section эффекты от Animate.CSS</h2> <div one-fourth"> <img alt="" src="https://www.internet-technologies.ru/articles/images/box1.png"> <h4>BOUNCE IN DOWN</h4> </div> <div one-fourth"> <img alt="" src="https://www.internet-technologies.ru/articles/images/box2.png"> <h4>SWING</h4> </div> <div one-fourth"> <img alt="" src="https://www.internet-technologies.ru/articles/images/box3.png"> <h4>SHAKE</h4> </div> <div one-fourth last"> <img alt="" src="https://www.internet-technologies.ru/articles/images/box4.png"> <h4>FLASH</h4> </div> </div> </div> </section>

Раздел About

В этом разделе мы обернем все в класс container :

<section ANIMATE.CSS</h2>

Animate.css состоит из кроссбраузерных анимаций, созданных Дэном Эденом . Эффекты будут прекрасно смотреться в любых современных браузерах:

</div> </section>

Раздел Subscribe

В разделе подписки мы будем использовать ту же разметку анимации для сайта, что и в разделе About . Но здесь нам нужно вставить форму для ввода email-адреса , а также кнопку подтверждения:

<section на рассылку!</h2> Введите адрес вашей электронной почты, и мы обязательно пришлем вам что-нибудь интересное! <form action="" method="post" name= "newsletter-form"> <input name= "subscribe_email" placeholder="Your email" type="email" value= ""> <input name= "subscribe_submit" type="submit" value="Подписаться!"> </form> </div> </section>

Подвал

Сначала обернем в класс container и центрируем все на экране, используя файл style.css :

<footer 2014 <a href= "http://www.1stwebdesigner.com/" target= "_blank">1stwebdesigner</a>. Все права защищены </div> </footer> </body> </html>

Вот что у нас должно получиться:

Подвал

CSS-код

Перед тем, как вставить анимацию на сайт, сначала добавим основные стили для базовых элементов:

body < font-family: 'Open Sans', sans-serif; font-weight: 300; >h2 < font-size: 48px; font-family: Raleway, sans-serif; font-weight: 800; margin-bottom: 20px; text-align: center; text-transform: uppercase; >h3 < font-family: 'Open Sans', sans-serif; text-transform: uppercase; font-size: 32px; font-weight: 300; margin-bottom: 30px; >h4 < font-family: 'Open Sans', sans-serif; font-size: 20px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px; margin-top: 10px; >.fleft < float: left; >.fright < float: right; >.clear < clear: both; >.center < text-align: center; >#wrapper < width: 100%; overflow: hidden; >section

Далее следуют стили для контейнеров и колонок анимации для сайта:

.container < margin: 0 auto; width: 960px; padding: 50px 0 80px; >.column-container < margin: 40px 0 -40px; overflow: hidden; >.column < float: left; padding: 0 40px 40px 0; >.column-container.last < margin-bottom: 0; >.column.last < padding-right: 0; >.column.one-half < width: 460px; >.column.one-third < width: 290px; >.column.two-thirds < width: 630px; >.column.one-fourth < width: 210px; >.column.three-fourths < width: 710px; >.column img

Раздел Cover будет оформлен собственной фоновой картинкой. Перед тем, как вставить анимацию на сайт, стилизуем каждый элемент внутри раздела cover :

#cover < background: url(../images/background.png) center top no-repeat; font-size: 1.3em; >#cover .container < padding: 240px 0 200px; color: #fff; >#cover p < padding-right: 508px; text-shadow: 2px 2px 2px rgba(150,150,150,1); font-family: 'Open Sans'; text-align: left; >#cover h2 < font-size: 78px; line-height: 60px; margin: 20px 0; text-shadow: 2px 2px 2px rgba(150,150,150,1); text-align: left; >#cover h3 < margin: 0; text-shadow: 2px 2px 2px rgba(150,150,150,1); >#browser

Далее поработаем над стилизацией раздела Features . Задаем цвет фона #38bc94 , а свойству color присваиваем белый цвет. Также нужно центрировать текст в каждой колонке примера анимации для сайта:

#features < background: #38bc94; color: #fff; >#features h4,#features p

Для раздела Effects мы добавляем #e9e9e9 в качестве цвета фона и центрируем текст в каждой колонке:

#effects < background: #e9e9e9; text-align: center; color: #898989; >#effects img

После этого приступаем к оформлению раздела About :

#about < background: #3787bf; color: #fff; overflow: hidden; >#about h2,p

Перед тем, как добавить анимацию на сайт и перейти к разделу Subscribe , давайте добавим стили для форм. Здесь мы определяем текстовые поля и кнопки:

button,input,textarea < font-size: 16px; max-width: 100%; margin: 0; border-radius: 0; vertical-align: baseline; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; >textarea < overflow: auto; vertical-align: top; >input,textarea < background: #6e6e6e; background: rgba(169,169,169,0.3); border: 1px solid #f4f4f4; color: #fff; font-weight: 700; letter-spacing: 1px; padding: 12px; text-transform: uppercase; >input:focus,textarea:focus < outline: 0; >button:hover,button:focus,input[type=submit]:focus,input[type=submit]:hover < background: #419d81; color: #fff; outline: 0; >button,input[type=submit] < -webkit-appearance: button; cursor: pointer; >button,input[type=submit] < background: #38bc94; -webkit-transition: all .5s; -moz-transition: all .5s; transition: all .5s; >.form-field

Перед тем, как вставить анимацию на сайт HTML , добавим стили для раздела Subscribe . Мы добавим фоновую картинку и установим для каждой формы ширину и высоту:

#subscribe < background: url(../images/newsletter.png) no-repeat center center; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; color: #fff; padding: 40px 0; >#subscribe h2 < text-align: center; margin-top: 20px; >#subscribe-form .form-field < margin: 0 auto; >#subcribe_email < margin-top: 20px; >#subscribe-form .form-submit < height: 50px; width: 180px; display: block; margin: 20px auto 0; >#subcribe_email,#subscribe_submit

Добавляем стили для подвала страницы:

footer < background: #484848; color: #fff; >footer .container < padding: 20px 0 10px; overflow: hidden; >p#footer-copyright < text-align: center; >footer a

Медиа-запросы для адаптивного дизайна

Чтобы посадочная страница c анимацией для сайта хорошо смотрелась на разных экранах, нужно добавить конкретные стили для определенных размеров экрана. Скопируйте приведенный ниже код и вставьте его в CSS-файл :

@media all and (max-height: 1024px) and (max-width: 1024px) < section .container, footer .container < width: 900px; >#cover p < padding-right: 480px; >.column.one-third < width: 273px >.column.two-thirds < width: 587px >.column.one-half < width: 430px >.column.one-fourth < width: 195px >.column.three-fourths < width: 665px >> @media all and (max-width: 1023px) < section .container, footer .container < width: 640px; >.column.one-third, .column.two-thirds, .column.one-half, .column.one-fourth, .column.three-fourths < width: 100%; padding-right: 0; >#cover p < padding-right: 220px; >#features .column.one-third < width: 300px; >#features .column.one-third:nth-child(odd) < padding-right: 40px; >#effects .column.one-fourth < width: 130px; padding-right: 40px; >#effects .column.one-fourth.last < padding-right: 0; >> @media all and (max-width: 980px) < .fleft< float: none; >.fright < float; none; >#browser < display: none; >#cover h3, #cover h2, #cover p < text-align: center; padding: 0; margin: 20px auto; >> @media all and (max-width: 640px) < h2 < font-size: 2.8em >h3 < margin-bottom: 15px; >.column < padding-bottom: 20px; >.column-container < margin-bottom: 0; >.column-container < margin-top: 0; >section .container < width: 400px; padding: 50px 0; margin: 0 auto; >#wrapper < position: relative; >#wrapper.hidden < left: -240px; >footer .container < width: 400px; margin: 0 auto; >#cover < background-position: left bottom; >#cover .container < width: 400px; padding: 80px 0 40px; text-align: left; >#cover h2, #cover h3, #cover p < text-align: center; padding-right: 0; >#cover h2 < font-size: 54px; line-height: 44px; >#cover h3 < font-size: 23px; >#cover p < font-size: 16px; >.column.one-third, .column.two-thirds, .column.one-half, .column.one-fourth, .column.three-fourths < width: 100%; padding-right: 0; >#features .column.one-third < width: 100%; >#effects .column.one-fourth < width: 180px; padding-right: 40px; >#effects .column.one-fourth:nth-child(even) < padding-right: 0; >#about-container < margin: 30px 0 20px; >> @media all and (max-width: 480px) < section .container, footer .container, #cover .container < width: 260px; >h2 < text-align: center; >#cover .container < padding: 150px 0 100px; >#effects .column.one-fourth < width: 125px; padding-right: 10px; >#about-container < text-align: center; >footer .container < text-align: center; >p#footer-copyright < float: none; margin: 0; >> @media all and (max-width: 480px) < #cover h2 < font-size: 39px; >#browser < margin: 0 auto; >> @media all and (max-width: 320px) < h2 < font-size: 20px; >#about h2 < font-size: 20px; >#subscribe h2 < font-size: 20px; >>

Анимируем элементы при помощи Animate.CSS

Приступим к анимации на сайте. В файле animate.css присутствует класс “ animated ”. Это значит, что его нужно указать в разметке. Посмотрите на этот пример:

<h1 bounceInRight"> </h1>

Для этого руководства я использовал следующие классы анимации. Ознакомиться с полным перечнем классов можно на сайте Animate.css :

  • bounceInLeft ;
  • rotateIn ;
  • bounceInRight ;
  • lightSpeedIn ;
  • flipInY ;
  • bounceInDown ;
  • swing ;
  • shake ;
  • flash ;
  • bounce ;
  • tada ;
  • wobble .

Задержка анимации

Рассмотрим, как добавить анимацию для сайта HTML с задержкой в раздел Cover . Сначала к тегу H3 , расположенному под div с классом fleft , я добавляю анимационный класс bounceInLeft . Соответствующий код приведен ниже:

<h3 bounceInLeft">Just-add-water CSS animations</h3>

Далее я добавляю анимационный класс rotateIn к тегу H2 , а также класс bounceInRight к тегу абзаца:

<h2 rotateIn">Animate.CSS</h2>

Animate.css – бесплатная CSS-библиотека , созданная Дэном Эденом . Она состоит из 50 кроссбраузерных CSS-анимаций , которые позволят не писать код вручную и анимировать элементы на странице.

Добавим анимационный класс lightSpeedIn к изображению под div-элементом с классом fright :

<img align="right" lightSpeedIn" src="https://www.internet-technologies.ru/articles/images/browser.png"></div>

Чтобы добавить задержку анимации для сайта к каждому элементу, нужно открыть файл Animate.css и добавить задержку продолжительностью в 1 секунду к каждому анимационному классу:

-webkit-animation-delay: 1s; -moz-animation-delay: 1s; -ms-animation-delay: 1s; -o-animation-delay: 1s; animation-delay: 1s;

В качестве примера для нашего анимационного класса bounceInLeft предлагаю следующий код:

.bounceInLeft

В моем примере элементы отображаются неодновременно. Для этого я добавил еще по одной секунде задержки. Ниже представлен полный код:

.bounceInLeft < -webkit-animation-name: bounceInLeft; animation-name: bounceInLeft; -webkit-animation-delay: 1s; -moz-animation-delay: 1s; -ms-animation-delay: 1s; -o-animation-delay: 1s; animation-delay: 1s; >.bounceInRight < -webkit-animation-name: bounceInRight; animation-name: bounceInRight; -webkit-animation-delay: 3s; -moz-animation-delay: 3s; -ms-animation-delay: 3s; -o-animation-delay: 3s; animation-delay: 3s; >.lightSpeedIn

Анимация при наведении

Рассмотрим, как вставить анимацию на сайт к элементам при наведении на них курсора мыши. Сначала следует добавить анимационные классы к элементам, которые нужно “ оживить ”:

<div one-third animated flipInY"> <img alt="" src="https://www.internet-technologies.ru/articles/images/icon_html5.png"> <h4>Совместимость с HTML5</h4> Совместимая с HTML5 разметка с применением невероятно быстрых анимаций на CSS3 </div>

Обратите внимание, что я добавил анимационный класс flipInY к одному из трех div-элементов . Этот эффект можно использовать для любого div .

Чтобы запустить анимацию при наведении курсора, нужно добавить к анимационному классу псевдоэлемент. В качестве примера давайте применим его к классу FlipInY :

.flipInY:hover < -webkit-backface-visibility: visible !important; -ms-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInY; animation-name: flipInY; -webkit-animation-duration: 2s; -moz-animation-duration: 2s; -ms-animation-duration: 2s; -o-animation-duration: 2s; animation-duration: 2s; -moz-animation-fill-mode: both; -ms-animation-fill-mode: both; -o-animation-fill-mode: both; animation-fill-mode: both; cursor: pointer; cursor: pointer; >.flipInY:hover

В этом примере анимации для сайта я также использовал свойство animation-duration , которое позволяет контролировать продолжительность анимации. Учтите, что в примере также используется animation-fill-mode . Это свойство определяет, какие стили будут применяться к элементу в то время, пока не воспроизводится анимация.

По умолчанию, CSS-анимации не будут оказывать влияния на элементы до тех пор, пока не будет запущен первый ключевой кадр. Эффект будет прекращаться после воспроизведения последнего кадра.

В завершение

На этом, пожалуй, все! Можете поэкспериментировать с примерами из данного руководства, чтобы закрепить полученные знания.

Мини-туториал по анимации в CSS и HTML5

Рассказываем, как сделать анимацию без использования JavaScript. Пишем страницу авторизации пользователя на CSS и HTML5.

За годы работы с Front End технологиями мне приходилось работать с разными способами анимации. В этой статье я хочу подробнее разобрать, как работает анимация в CSS без использования JavaScript.

В CSS есть свойство animation, которое позволяет анимировать практически любое свойство HTML элемента. Правило анимации указывается в блоке keyframes.

Свойство animation может быть использовано для анимации других свойств CSS, таких как цвет фона, высота, длинна, положение элемента и многие другие.

Давайте рассмотрим пример, где мы меняем цвет фона у элемента.

Создадим в HTML элемент с классом «element»:

В CSS создаем правило для анимации в блоке keyframes. Назовем анимацию changeColor. Анимация будет менять цвет фона объекта с красного на синий.

@keyframes changeColor < 0% < background-color: red; >100% < background-color: blue; >> 

Здесь 0% — это начало анимации, 100% — это конец анимации. Все что между движок CSS автоматически анимирует в плавное изменениe свойста, которое вы выбрали. В данном случае будет плавное изменение цвета.

Microsoft запустила бета-платформу Brainwave для обучения нейросетей

Теперь добавим эту анимацию как свойство animation в CSS стилях для элемента. Наш CSS будет выглядеть таким образом:

.element

Результат данной анимации будет выглядеть так:

Мы можем контролировать анимацию при помощи дополнительных свойств.

В данном примере после имени анимации мы указали скорость анимации (2s) и количество повторений (в данном случае бесконечное количество повторений infinite).

Существует несколько свойств анимации. Рассмотрим каждый из них:

  • animation-name: имя анимации определенным правилом keyframes
  • animation-duration: сколько времени займет один цикл анимации от 0% до 100%
  • animation-timing-function: определяет кривые ускорения, такие как ease и linear
  • animation-delay: время задержки между моментом загрузки элемента в браузере и началом анимации.
  • animation-direction: указывает направление анимации. По умолчанию анимация идет от 0% до 100%. С помощью данного свойства можно сделать так, чтобы анимация шла в обратную сторону от 100% до 0% или каждый раз меняла направление.
  • animation-iteration-count: количество повторений цикла анимации. Можно установить число или указать infinite для бесконечного повторения анимации.
  • animation-fill-mode: устанавливает значение, которое устанавливается до начала или после окончания анимации. Например, можно указать, что после завершения всех циклов анимации фон элемента будет зеленый.
  • animation-play-state: проигрывает/ставит на паузу анимацию

Свойства анимации указываются таким образом:

.element

Все эти свойства можно записать и одной строкой:

.element

Свойства анимации могут принимать значения, указанные в таблице:

Мини-туториал по анимации в CSS и HTML5 1

Правило keyframes может иметь неограниченное количество шагов. Не обязательно только начало и конец. Можно указать значения и для середины цикла анимации:

@keyframes changeColor < 0% < background-color: red; >50% < background-color: yellow; >100% < background-color: blue; >> 

HTML элементу можно одновременно присвоить несколько анимаций. Давайте добавим нашему элементу анимацию move, которая будет двигать элемент влево и вправо.

Добавим новый блок keyframes

@keyframes move < 0% < margin-left: 0px; >100% < margin-left: 200px; >> 

Перечислим анимации через запятую

animation: changeColor 3s infinite, move 4s infinite alternate; 

Как видите, мы присвоили одному элементу одновременно 2 анимации: движение и смену цветов.

Практические примеры

Теперь давайте рассмотрим более практические примеры применения CSS анимации, которые используются в веб страницах и веб приложениях.

Анимация спиннера загрузки

Очень часто можно увидеть во время загрузки контента вращающийся спиннер. Давайте создадим такой спиннер при помощи CSS анимации.

В этом примере мы использовали анимацию rotate, где зациклили вращение спиннера на 360 градусов.

@keyframes rotate < from to > 

Далее мы использовали эту анимацию в списке стилей для элемента:

animation: rotate 1.5s infinite linear 

Анимированная форма авторизации

Давайте создадим что-то посложнее. Например анимированную форму авторизации.

Сделаем зацикленную анимацию для кнопки Submit. Добавим анимированный эффект для наведения курсора на кнопку. Сделаем так же анимацию для лейблов Username и Password в момент, когда поля ввода в фокусе.

 
Login
Username
Password
Submit

Обратите внимание на несколько span в кнопке Submit. Именно их мы потом и будем анимировать.

Добавим статические стили в CSS, чтобы наша форма выглядела красиво:

html < height: 100%; >body < margin:0; padding:0; font-family: sans-serif; background: linear-gradient(#141e30, #243b55); >.login-box < position: absolute; top: 50%; left: 50%; width: 400px; padding: 40px; transform: translate(-50%, -50%); background: rgba(0,0,0,.5); box-sizing: border-box; box-shadow: 0 15px 25px rgba(0,0,0,.6); border-radius: 10px; >.login-box h2 < margin: 0 0 30px; padding: 0; color: #fff; text-align: center; >.login-box .user-box < position: relative; >.login-box .user-box input < width: 100%; padding: 10px 0; font-size: 16px; color: #fff; margin-bottom: 30px; border: none; border-bottom: 1px solid #fff; outline: none; background: transparent; >.login-box .user-box label < position: absolute; top:0; left: 0; padding: 10px 0; font-size: 16px; color: #fff; pointer-events: none; transition: .5s; >.login-box .user-box input:focus ~ label, .login-box .user-box input:valid ~ label < top: -20px; left: 0; color: #03e9f4; font-size: 12px; >.login-box form a < position: relative; display: inline-block; padding: 10px 20px; color: #03e9f4; font-size: 16px; text-decoration: none; text-transform: uppercase; overflow: hidden; transition: .5s; margin-top: 40px; letter-spacing: 4px >.login-box a:hover

Теперь добавим анимации. Анимировать мы будем элементы в кнопке Submit.

Добавим 4 блока keyframes с правилами анимации:

@keyframes btn-anim1 < 0% < left: -100%; >50%,100% < left: 100%; >> @keyframes btn-anim2 < 0% < top: -100%; >50%,100% < top: 100%; >> @keyframes btn-anim3 < 0% < right: -100%; >50%,100% < right: 100%; >> @keyframes btn-anim4 < 0% < bottom: -100%; >50%,100% < bottom: 100%; >> 

Как видно, мы будем использовать 4 анимации по одной для каждого . Наши элементы будут двигаться по очереди вверх, вниз, влево, вправо, создавая иллюзию беспрерывного вращения вокруг кнопки.

Добавим теперь эту анимацию каждому элементу:

.login-box a span:nth-child(1) < animation: btn-anim1 1s linear infinite; >.login-box a span:nth-child(2) < animation: btn-anim2 1s linear infinite; animation-delay: .25s >.login-box a span:nth-child(3) < animation: btn-anim3 1s linear infinite; animation-delay: .5s >.login-box a span:nth-child(4)

Как видите, мы добились стильной анимации, используя только HTML и CSS.

Заключение

В данной статье мы рассмотрели, как использовать анимацию CSS и HTML без использования JavaScript. Инструментарий предоставляемый CSS очень гибкий: можно использовать его для создания большого количество разных анимаций, где лимитом будет только ваше воображение и здравый смысл. Вот здесь можно посмотреть различные креативные CSS анимации для вдохновения.

Следите за новыми постами по любимым темам

Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *