Html баннеры примеры. Как сделать html код для баннера и анимацию в Фотошопе. Как мне посмотреть присланный HTML5-баннер на моем компьютере

Баннер (англ. banner - флаг, транспарант) - графическое изображение рекламного характера, аналогичное рекламному модулю в прессе. Может быть как статичным изображением или даже текстом, так и содержать анимированные элементы (вплоть до видео и интерактивных объектов). Как правило, может содержать гиперссылку на сайт рекламодателя или страницу с дополнительной информацией. Задачи у баннера следующие. Во-первых, продавать товар. А значит — привлечь внимание посетителя, заинтересовать потенциального клиента рекламируемой товаром или услугой, подтолкнуть к переходу на сайт и побудить к действию (Call To Action). Именно CTA и является конечной целью рекламы. И, во-вторых, задачей баннера является имиджевая или брендовая реклама, цель которой повысить узнаваемость бренда и составить положительный имидж о бренде.

Популярные виды объявлений на сайте:

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

Главные отличия HTML от других типов баннеров
По сравнению с другими методами создания баннеров, технологии HTML5 дают ряд преимуществ для привлечения аудитории на ресурс:

  • Объявления в таком формате будут одинаково отображаться на всех устройствах без дополнительных расширений для браузера.
    HTML5 предоставляет больше возможностей для интеграции в свои рекламные объявления формы, кнопки социальных сетей, календари, карты и другие приложения.
  • Небольшой вес и использование меньших ресурсов не влияет на скорость загрузки страниц в браузере. Флеш-технологии не позволяют добиться такого результата.
  • Для оценки эффективности баннеров на HTML5 можно просмотреть статистику в Google Analytics. Там представлена различная информация о гостях и переходах по ссылкам.

Существенным недостатком флеш-технологий стал постепенный отказ от них крупных компаний, таких как Apple, Mozilla и Amazon. Основным толчком для исчезновения Flash стал Google. Сначала они отключили Flash-анимацию в Google Chrome, а затем отказались от Flash-объявлений в своих сервисах поисковой рекламы, отдав предпочтение HTML5.

Способы создания HTML-баннеров
Разработка баннера начинается с создания отдельной страницы и встраивается на сайт через «iframe». Существует несколько методов разработки рекламных баннеров на сайт, мы рассмотрим самые популярные.

1. Создание фрейма с помощью CSS3 и JavaScript
Фрейм позволяет загружать в область заданных размеров любые независимые документы. Это может быть разный HTML-код с использованием стилей и скриптов для оформления. Также возможна реализация баннера через область «canvas», в которой разрабатываются анимации, рисунки, графики и даже игры при помощи JavaScript. Для ускорения разработки разрешается воспользоваться сторонними библиотеками, например CreateJS .

Преимущества :

  • Функционал не ограничен никакими программами, можно реализовать что угодно.

Недостатки :

  • Такой процесс довольно сложный и требует особых навыков верстки.
  • Большие трудозатраты по времени относительно других способов.

2. Adobe Edge Animate
Тем, кто знает Adobe After Effects, интерфейс программы Adobe Edge Animate покажется очень знакомым. У Adobe Edge Animate более ужатый функционал, направленный на разработку простого анимированного контента с использованием HTML5, JavaScript и CSS3. Программа поддерживает импорт таких форматов, как.svg, .png, .jpeg, .gif, HTML; поддержка video и audio форматов.


Имеется более 30 встроенных эффектов, что упрощает время создания качественной анимации в несколько раз:


Преимущества :

  • Множество доступных видеоуроков в Сети по использованию программы.
  • Простой функционал, большинство процессов автоматизированы.
  • Программа не требует знаний HTML5, JavaScript и CSS3.
  • По окончанию работы получаем все необходимые документы для размещения баннера на сайте. Images - папка с графическими элементами баннера, несколько файлов JavaScript, html и файл формата An - для последующего редактирования файла в программе.
  • Готовый баннер поддерживается всеми современными браузерами и мобильными приложениями, соответствует всем техническим требованиям рекламных кампаний в Яндекс и Google.

Недостатки :

  • Интерфейс только на английском языке.
  • С 2015 года компания Adobe прекратила развитие проекта Adobe Edge Animate, программа с того времени не обновлялась и достигла своего предела в развитии. Edge Animate все еще доступен для скачивания в архивах Creative Cloud.

3. Adobe Animate CC
Animate CC - это переименованный продукт Adobe Flash Professional. В последнее время технология Flash растеряла доверие пользователей, программа нуждалась в смене названия и нескольких доработках. По сути, это та же самая программа Flash Professional, но в которой файлы дополнительно сохраняются в HTML5 и JavaScript.


Интерфейс очень схож с Flash Professional, но возможности у программ различаются.


Преимущества :

  • Возможность создания трехмерной графики. Имеется инструмент «камера», позволяющий снимать глубину кадра для настоящей анимации.
  • В отличие от Edge Animate программа Animate CC имеет большой выбор векторных кистей и возможность работы с растровой графикой.
  • Программа относительно новая, поэтому Adobe активно развивает проект, выпускает обновления и совершенствует Animate CC.
  • Имеется русскоязычная версия.
  • Расширенные возможности экспорта файла в форматы: JavaScript/Html, jpeg, png, oam, svg, mov, gif. Нажатием одной кнопки сохраняются элементы баннера в спрайтах, тем самым уменьшая время загрузки баннера.

Недостатки :

  • Новизну программы также отнесем к недостаткам. Уроков по созданию анимации в Animate CC не так много, как у Adobe Edge Animate. Поэтому работу некоторых функций нужно изучать самостоятельно, что дается непросто. Программа достаточно сложная для самостоятельного изучения, но разобраться можно.
  • Некоторые функции не автоматизированы, как в Edge Animate, что также увеличивает время создания баннера.

4. Google Web Designer
Google порадовал нас бесплатным редактором, специально созданным для реализации html-баннеров. Google Web Designer полностью заточен на реализацию рекламы, основной уклон которой направлен на AdWords.


Если мы посмотрим на окно создания нового файла, заметим, что в программу уже встроены размеры шаблонов рекламы.


Преимущества :

  • Простой интерфейс.
  • Наличие шаблонов для рекламы в google.
  • Полностью бесплатная программа.
  • Наличие русскоязычной версии.
  • Заложен адаптивный дизайн баннеров, html-баннер будет отлично выглядеть в любом разрешении экрана.

Недостатки :

  • Функционал Google Web Designer достаточно узок для создания шедевров анимации. Программа сильно ограничена шаблонами.
  • Нехватка обучающих программ. Справки Google недостаточно для полноценного обучения функционалу.


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

Banner HTML5 - баннер, который отображает произвольное HTML-содержимое или изображение. HTML-код может представлять из себя обычную HTML страницу со стилями и скриптами. Он помещается в iframe и имеет ограниченный доступ к содержимому площадки.

С помощью шаблона "Banner HTML5 " баннер можно добавить двумя способами:
1. подготовив только изображение. Наличие ссылки для перехода в параметрах баннера регулирует кликабельность изображения.
2. подготовив HTML креатив в редакторе по инструкции: или .
Если в баннере добавлен и HTML-код и изображение, то будет показан HTML-код.

Параметры, настраиваемые при добавлении в ADFOX:
- Ширина, высота баннера.
- Собственные css-стили для контейнера с баннером.

Разработка HTML-креатива

1. Ознакомьтесь с требованиями к HTML-коду

  • Максимально допустимый размер HTML-файла - 65 000 байт.
  • JavaScript и CSS предпочтительнее размещать внутри HTML-кода баннера. Если итоговый HTML-код превышает максимально допустимый размер, то необходимо уменьшить код за счет вынесения JavaScript и CSS в отдельные файлы:
    - сохраните js и css код в отдельные файлы с расширением.js или.css;
    - файлы по весу не должны превышать 300Кб;
    - загрузите файлы во вкладку "Файлы" рекламной кампании и полученные ссылки на файлы подключите в HTML код.

    Пример подключения js и css файлов:

    В HTML-коде не допускается использование относительных путей к файлам.

  • В проекте может находиться только один файл с расширением.html.
  • Максимально допустимое количество файлов в проекте - 50;
  • Разрешенные типы файлов в проекте: css, js, html, gif, png, jpg, jpeg, svg, json, flv, mp4, ogv, ogg, webm, avi, swf;
  • Максимальный размер каждого файла (действует также для файлов внутри архива):
    - 300Кб;
    - 1Мб для видео файлов.
  • Названия файлов должны содержать только цифры или буквы английского алфавита, символ подчёркивания. Не допускается использование в названии файла русских букв, пробелов, кавычек и специальных символов;
  • В названиях переменных и объектов нельзя использовать русские буквы.
    Исключение составляет только текст на баннере.
  • Формат готового проекта - zip архив.
Требования к изображениям

Используйте картинки высокого разрешения, это кардинально улучшит качество баннера на мобильном устройстве, хоть и снизит скорость загрузки баннера.

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

Допустимые форматы изображений: png, gif, jpg, svg.
Максимальный вес одного файла: 300Кб.

2. Выберите редактор, в котором будете разрабатывать HTML креатив и кликните на соответствующую ссылку. Подготовьте архив с HTML-креативом по инструкции:

Редактор Adobe Animate CC - Баннер с одной кнопкой

Редактор Adobe Animate CC - Баннер с несколькими кнопками

1. Скачайте шаблон для баннера с несколькими кнопками

2. Создайте в Adobe Animate проект HTML5 Canvas (или откройте уже существующий)

3. При добавлении кнопок (buttons) или вложенных в сцену клипов (movie clips) важно задавать им instance name , чтобы потом можно было добавить клик к нужным кнопкам. Рекомендуем использовать названия button1 - button9 .

См. также:

Инструкция по добавлению кнопки и назначению instance name

Кнопка на главной сцене

1. Создайте на сцене какой-нибудь объект, например, с помощью Rectangle Tool.
Затем выделите его и в контекстном меню выберите "Convert to Symbol..."

2. В появившемся диалоговом окне выберите Type: Button, Name можно оставить без изменений, нажмите Ok.

3. Назначьте этой кнопке Instance Name, чтобы работал клик.

4. Пропишите в Actions для этой кнопки код:

Window.buttons.push(//Пропишите через запятую пути кнопок, добавив вначале this this.button1 //Конец места для кнопок);

Вложенная кнопка

1. Допустим, что кнопка находится внутри другого символа, например внутри Movie Clip.
В данном примере этому Movie Clip задано Instance Name "name"

2. По двойному клику перейдите внутрь name, там будет вложенная кнопка.

3. При указании в Actions пути до такой кнопки, нужно будет добавить Instance Name объекта после this, в который она вложена:

Window.buttons.push(//Пропишите через запятую пути кнопок, добавив вначале this this.name.button1 //Конец места для кнопок);

Инструкция по созданию прозрачных кнопок

1. Выделите нужный элемент и преобразуйте его в символ

2. Укажите название и выбирите Type: Button

3. С помощью двойного клика по символу перейдите в него:

4. Сделайте insert keyframe в кадр hit

5. Удалите содержимое кадров up, over, down

6. Прозрачная кнопка готова:

4. Добавьте в проект слой Actions (в него будем добавлять код для кнопок)

5. Откройте окно для написания кода

Window.buttons.push(//Пропишите через запятую пути кнопок, добавив вначале this //Конец места для кнопок); setAdfox();

Если кнопка находится в главной сцене, то пропишите её instance name сразу после this, например

This.button1

Если кнопка находится внутри вложенной сцены, то после this пропишите сначала instance name сцены, а потом уже instance name кнопки:

This.scene_instance_name.button2

Пример итогового кода в слое Actions:

Window.buttons.push(//Пропишите через запятую пути кнопок, добавив вначале this this.button1, this.scene_instance_name.button2 //Конец места для кнопок); setAdfox();

7. Первая кнопка в строке кода будет вызывать первую ссылку из ADFOX, вторая - вторую и так далее.

Вместе с HTML креативом передайте менеджеру, который будет добавлять баннер в ADFOX, информацию о соответствии кнопок и номеров ссылок.

8. Откройте параметры публикации и подключите шаблон из первого пункта и опубликуйте проект, выбрав нужную директорию.

9. После публикации проекта заархивируйте его в формате.zip. Ваш креатив готов для загрузки в баннер ADFOX.

Редактор Google Web Designer

Код данного баннера можно брать за основу при создании креативов в редакторе.

Шаблон содержит скрипт adfox_HTML5.js и набор параметров для корректной работы переходов и подсчета событий:
%reference%, %user1%, %eventN%, где N - номер события от 1 до 30.

2. Обработка клика.

Все события назначаются конкретным элементам анимации через вкладку "События".


Для вызова действий используется компонент "Интерактивная область".
Добавьте его и выберите событие Интерактивная область → Касание/нажатие (или "Tap Area > Touch/Click" в английской версии).


Во вкладке "Собственный код" укажите вызов функции клика.

2.1 Если используется одна кнопка перехода:

CallClick();

2.2 Если кнопок перехода несколько:

CallClick(n);

где n

2.3 Если необходимо вызвать событие из анимации без перехода используйте следующий код:

CallEvent(n);

где n - номер события, которое должно быть вызвано.



Особенность реализации тянущегося (резинового) баннера.

Чтобы баннер тянулся по ширине контейнера, в котором он будет находится на сайте, на панели Свойства для положения и размеров укажите проценты вместо пикселей.

Также используйте опции "Выровнять по контейнеру" и "Резиновый макет" на верхней панели инструментов.
Если перед использованием каких-либо инструментов выравнивания включить "Резиновый макет", то при изменении размера родительского контейнера все элементы будут выравниваться относительно друг друга и относительно размеров контейнера.
При этом можно одновременно использовать как относительные размеры элементов в процентах, так и абсолютные – в пикселях.

4. Публикация проекта.

При добавлении баннера в ADFOX менеджеру потребуется знать соответствие кнопок и номеров событий. К каждому событию менеджер пропишет собственную ссылку для перехода, которая с помощью переменной затем будет передана в код баннера.

После публикации проекта заархивируйте его в формате .zip . Ваш креатив готов для загрузки в баннер ADFOX.

Другие редакторы

1. Подсчет кликов в баннере

Чтобы в ADFOX у баннера считалась статистика по кликам, необходимо в HTML-коде в теге а для атрибута href прописать переменную:

%banner.reference_user1%

Также для ссылок используйте атрибут target с переменной %banner.target% в значении атрибута.
Если атрибут отсутствует, то ссылка откроется внутри iframe, то есть рекламируемый сайт откроется на баннерном месте.

Пример HTML-кода для подсчета кликов по баннеру:

Сайт рекламодателя

В HTML-коде баннеров, которые будут размещаться в мобильных приложениях, для учета кликов используйте макрос: %reference%@%banner.user1%

2. Подсчет кликов с нескольких ссылок в баннере

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

Первая ссылка Вторая ссылка

Замените значения атрибута href на переменные %request.reference%@%banner.eventN% , где вместо N должен быть номер события с 1 по 28.
Например:

Первая ссылка Вторая ссылка

Соответствие ссылок и переменных нужно сообщить менеджеру, добавляющему баннер в ADFOX. Так как при добавлении баннера нужно будет во вкладке "События" указать для События 1 первую ссылку, а для события 2 - вторую ссылку.

Добавление баннера в ADFOX

Чтобы добавить баннер в ADFOX выберите нужный тип баннера и шаблон "Banner HTML5 " .

Укажите параметры баннера:

Архив с HTML5 креативом - загрузите.zip архив с проектом, поле "HTML5 код креатива" должно оставаться пустым (оно будет заполнено содержимым.html файла вашего проекта уже после добавления баннера).

HTML5 код креатива - загрузите zip-архив с проектом, подготовленный в HTML редакторах или вставьте HTML-код.

Если в баннере несколько ссылок, добавьте их во вкладке События у баннера, в поля URL перехода.
Соответствие номеров ссылок и событий уточняйте у разработчиков HTML креатива.

Ссылка на промерочный пиксель - по умолчанию используется пиксель ADFOX //banners.adfox.ru/transparent.gif , при необходимости вести учет показов в сторонней системе, удалите пиксель ADFOX и укажите другую ссылку.

Ширина креатива (px или %) - укажите ширину баннера.

Высота креатива (px или %) - укажите высоту баннера.

Изображение - загрузите изображение.
Условия показа креативов:
- добавлен HTML-код и изображение - будет показан HTML-код.
- добавлено изображение - будет показано изображение.
- добавлен HTML-код - будет показан HTML-код.

Имя атрибута class контейнера баннера - укажите имя (или несколько имён через пробел) для атрибута class контейнера с баннером.

Использовать SafeFrame (yes|no) - safeFrame - это технология, которая оборачивает рекламу в специальный iframe, у которого есть строгий API. SafeFrame не даёт рекламе, которая в нём отрисовывается, собирать данные и взаимодействовать с остальной страницей вне safeFrame.
yes - включить использование safeFrame и запретить доступ к веб-странице;
no - не включать safeFrame. Код баннера имеет доступ к веб-странице.

Стили для блока баннера - произвольные стили для контейнера баннера одной строкой. Кроме стиля: display. Например, "border: 1px solid red;". Невалидные значения будут отброшены браузером.

Сделаем рекламный баннер с помощью CSS3. В настоящее время полностью поддерживают анимации CSS3 только браузеры Firefox и WebKit. Но достаточно просто заставить баннер работать в других браузерах. Однако, не следует ожидать великолепного функционирования везде (особенно в IE 7 и старше) экспериментов с новейшими техниками CSS.

Примечание: Для сохранения пространства на странице все префиксы производителей браузеров опущены. Смотрите код в исходниках.

Разметка HTML

Сначала рассмотрим структуру баннера в HTML. На данном этапе мы должны представить, как будет функционировать анимация:

Потерялся? Расслабься - мы поможем.

Для более глубокого понимания структуры разметки сфокусируемся на лодке:

С лодкой происходят три анимации:

Выскальзывание лодки слева. Применяется для неупорядоченного списка (группа).

Имитация раскачивания лодки на воде. Применяется к элементу списка (лодка).

Появление знака вопроса. Применяется к элементу div (знак вопроса).

Если посмотреть на демонстрационную страницу, то можно увидеть, что анимация для пункта списка (лодки) также действует на элемент div внутри него (Знак вопроса). Также анимация "выскальзывания" для неупорядоченного списка действует на пункт списка (лодку и знак вопроса).

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

CSS

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

Обратная совместимость

Мы обеспечим обратную совместимость просто задав стили разметки так, как будто анимаций CSS не существует совсем. Если кто-то будет смотреть страницу в старом браузере, то увидит обычную статичную картинку, а не пустое белое место.

Например: если использовать CSS? подобный ниже приведенному, то будут проблемы:

/* НЕПРАВИЛЬНО! */ @keyframe our-fade-in-animation { 0% {opacity:0;} 100% {opacity:1;} } div { opacity: 0; /* Данный div скрыт по умолчанию - ой!*/ animation: our-fade-in-animation 1s 1; }

Если браузер не поддерживает анимации, то элемент div останется невидимым для пользователя.

А вот так мы обеспечим обратную совместимость со старыми браузерами:

/* ВЕРНО */ @keyframe our-fade-in-animation { 0% {opacity:0;} 100% {opacity:1;} } div { opacity: 1; /* Данный div видим по умолчанию */ animation: our-fade-in-animation 1s 1; }

Теперь элемент div будет выводиться даже если анимация не может запуститься. А в современных браузерах div будет сначала скрыт в ходе анимации.

Основа

Теперь мы знаем как обеспечить обратную совместимость (что поможет избежать проблем при работе с реальными проектами). Пришла пора создать основу нашего кода CSS.

Нужно помнить о 3 моментах:

Так как баннер будет использоваться на разных сайтах, мы сделаем все наши селекторы CSS особенными. Все они будут начинаться с идентификатора #ad-1. Таким образом мы постараемся избежать перекрытия нашего кода и кода сайта.

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

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

Итак создаем основу для нашего баннера. Установим для нее относительное позиционирование чтобы внутренние элементы можно было корректно размещать. Также будет скрывать все, что выходит за рамки элемента:

#ad-1 { width: 720px; height: 300px; float: left; margin: 40px auto 0; background-image: url(../images/ad-1/background.png); background-position: center; background-repeat: no-repeat; overflow: hidden; position: relative; box-shadow: 0px 0px 6px #000; }

Затем задаем стили для текста и полей ввода. Вызываем соответствующие анимации. Также нужно убедиться, что содержание имеет наивысший z-index для движущихся частей, чтобы они не перекрывались:

#ad-1 #content { width: 325px; float: right; margin: 40px; text-align: center; z-index: 4; position: relative; overflow: visible; } #ad-1 h2 { font-family: "Alfa Slab One", cursive; color: #137dd5; font-size: 50px; line-height: 50px; text-shadow: 0px 0px 4px #fff; animation: delayed-fade-animation 7s 1 ease-in-out; /* Появление h2 с имитацией задержки */ } #ad-1 h3 { font-family: "Boogaloo", cursive; color: #202224; font-size: 31px; line-height: 31px; text-shadow: 0px 0px 4px #fff; animation: delayed-fade-animation 10s 1 ease-in-out; /* Появление h3 с имитацией задержки */ } #ad-1 form { margin: 30px 0 0 6px; position: relative; animation: form-animation 12s 1 ease-in-out; /* Выскальзывание формы для ввода email адреса с имитацией задержки */ } #ad-1 #email { width: 158px; height: 48px; float: left; padding: 0 20px; font-size: 16px; font-family: "Lucida Grande", sans-serif; color: #fff; text-shadow: 1px 1px 0px #a2917d; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border:1px solid #a2917d; outline: none; box-shadow: -1px -1px 1px #fff; background-color: #c7b29b; background-image: linear-gradient(bottom, rgb(216,201,185) 0%, rgb(199,178,155) 100%); } #ad-1 #email:focus { background-image: linear-gradient(bottom, rgb(199,178,155) 0%, rgb(199,178,155) 100%); } #ad-1 #submit { height: 50px; float: left; cursor: pointer; padding: 0 20px; font-size: 20px; font-family: "Boogaloo", cursive; color: #137dd5; text-shadow: 1px 1px 0px #fff; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border:1px solid #bcc0c4; border-left: none; background-color: #fff; background-image: linear-gradient(bottom, rgb(245,247,249) 0%, rgb(255,255,255) 100%); } #ad-1 #submit:hover { background-image: linear-gradient(bottom, rgb(255,255,255) 0%, rgb(255,255,255) 100%); }

Теперь зададим стили для воды и вызовем соответствующую анимацию:

#ad-1 ul#water{ /* Если нужна другая анимация для воды, ее можно добавить здесь */ } #ad-1 li#water-back { width: 1200px; height: 84px; background-image: url(../images/ad-1/water-back.png); background-repeat: repeat-x; z-index: 1; position: absolute; bottom: 10px; left: -20px; animation: water-back-animation 3s infinite ease-in-out; /* Имитация плеска волн */ } #ad-1 li#water-front { width: 1200px; height: 158px; background-image: url(../images/ad-1/water-front.png); background-repeat: repeat-x; z-index: 3; position: absolute; bottom: -70px; left:-30px; animation: water-front-animation 2s infinite ease-in-out; /* Другая имитация плеска волн. Анимация будет выполняться немного быстрее для создания эффекта перспективы. */ }

Зададим стили для лодки и её элементов. Также вызываем соответствующие анимации:

#ad-1 ul#boat { width: 249px; height: 215px; z-index: 2; position: absolute; bottom: 25px; left: 20px; overflow: visible; animation: boat-in-animation 3s 1 ease-out; /* Slides the group in when ad starts */ } #ad-1 ul#boat li { width: 249px; height: 215px; background-image: url(../images/ad-1/boat.png); position: absolute; bottom: 0px; left: 0px; overflow: visible; animation: boat-animation 2s infinite ease-in-out; /* Simulate the boat bobbing on the water - similar to the animation already used on the water itself. */ } #ad-1 #question-mark { width: 24px; height: 50px; background-image: url(../images/ad-1/question-mark.png); position: absolute; right: 34px; top: -30px; animation: delayed-fade-animation 4s 1 ease-in-out; /* Fade in the question mark */ }

Теперь создадим стили для облаков. Для них мы будем использовать анимацию с эффектом бесконечного движения. иллюстрация демонстрирует суть идеи:

А вот и код CSS:

#ad-1 #clouds { position: absolute; top: 0px; z-index: 0; animation: cloud-animation 30s infinite linear; /* Прокручиваем облака влево, сбрасываем и повторяем */ } #ad-1 #cloud-group-1 { width:720px; position: absolute; left:0px; } #ad-1 #cloud-group-2 { width: 720px; position: absolute; left: 720px; } #ad-1 .cloud-1 { width: 172px; height: 121px; background-image: url(../images/ad-1/cloud-1.png); position: absolute; top: 10px; left: 40px; } #ad-1 .cloud-2 { width: 121px; height: 75px; background-image: url(../images/ad-1/cloud-2.png); position: absolute; top: -25px; left: 300px; } #ad-1 .cloud-3 { width: 132px; height: 105px; background-image: url(../images/ad-1/cloud-3.png); position: absolute; top: -5px; left: 530px; }

Анимации

Напоминание: Начиная с данной точки ничего в действительности не анимируется. Если посмотреть наш баннер сейчас, то вы увидите статичную картинку. Здесь создаются анимации, которые вызываются в выше приведенном коде.

Теперь в вдохнем жизнь в нашу прекрасную статичную картинку:

/* Анимация с имитацией задержки используется для вывода нескольких элементов. Имитация задержки осуществляется запуском процесса с 80% продолжения анимации (а не сразу). Так можно имитировать любую задержку: */ @keyframes delayed-fade-animation { 0% {opacity: 0;} 80% {opacity: 0;} 100% {opacity: 1;} } /* Анимация для вывода формы с адресом email и кнопкой. Также используется имитация зхадержки */ @keyframes form-animation { 0% {opacity: 0; right: -400px;} 90% {opacity: 0; right: -400px;} 95% {opacity: 0.5; right: 20px;} 100% {opacity: 1; right: 0px;} } /* Данная анимация используется для вывода лодки за экрана в начале ролика: */ @keyframes boat-in-animation { 0% {left: -200px;} 100% {left: 20px;} } /* Анимация для облаков. Первая группа облаков начинает движение из центра, а вторая - справа от экрана. Первая группа медленно выводится с экрана, а вторая - появляется справа. Как только левая группа полностью скроется, облака очень быстро возвращаются в начальное положение: */ @keyframes cloud-animation { 0% {left: 0px;} 99.9999% {left: -720px;} 100% {left: 0px;} } /* Три последних анимации практически одинаковые - разница заключается в позиционировании элементов. Они имитируют плеск волн океана: */ @keyframes boat-animation { 0% {bottom: 0px; left: 0px;} 25% {bottom: -2px; left: -2px;} 70% {bottom: 2px; left: -4px;} 100% {bottom: -1px; left: 0px;} } @keyframes water-back-animation { 0% {bottom: 10px; left: -20px;} 25% {bottom: 8px; left: -22px;} 70% {bottom: 12px; left: -24px;} 100% {bottom: 9px; left: -20px;} } @keyframes water-front-animation { 0% {bottom: -70px; left: -30px;} 25% {bottom: -68px; left: -32px;} 70% {bottom: -72px; left: -34px;} 100% {bottom: -69px; left: -30px;} }

Заключение

В ходе данного урока мы изучили несколько ключевых концепций:

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

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

    Я размещаю в такие блоки РСЯ, свои тизеры/баннеры, а иногда вместо рекламы вывожу там похожие записи или какую-то полезную для посетителя информацию.

    Давайте расскажу, какими способами можно сделать плавающий блок на своём сайте.

    Задача: сделать последний блок в боковой колонке (сайдбаре) – плавающим. Причём, чтобы он прилипал только в тот момент, когда пользователь доходит до него скроллингом, а не сразу при открытии страницы. Также блок должен «отлипать», доходя до футера (т.е. не перекрывать его).

    Самый рабочий способ

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

    Ниже пример плавающего блока, который сработал практически на всех сайтах, где я его устанавливал. Косяков не было. Движок тоже не важен (DLE, WordPress, LiveStreet и др.).

    В желаемом месте боковой колонки вставляем такой HTML-код:

    $(window) .scroll(function() {
    var sb_m = 20 ; / * отступ сверху и снизу */
    var mb = 300 ; / * высота подвала с запасом */
    var st = $(window) .scrollTop() ;
    var sb = $(".sticky-block" ) ;
    var sbi = $(".sticky-block .inner" ) ;
    var sb_ot = sb.offset() .top;
    var sbi_ot = sbi.offset() .top;
    var sb_h = sb.height () ;

    If(sb_h + $(document) .scrollTop() + sb_m + mb < $(document) .height () ) {
    if(st > sb_ot) {
    var h = Math.round(st - sb_ot) + sb_m;
    sb.css({ "paddingTop" : h} ) ;
    }
    else {
    sb.css({ "paddingTop" : 0 } ) ;
    }
    }
    } ) ;

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

    Теперь подкключаем JS. Для этого прописываем в секции HEAD:

    Самый простой способ (для WordPress)

    Также безотказный метод, но при помощи установки плагина . Работает без косяков.

    Достоинства:

    • не нужно разбираться/понимать HTML;
    • простота и скорость установки.

    Недостатки:

  • не гибкий. Плавающим становится весь виджет (включая название и его оформление). Допустим, сделать этот блок иным цветом или размером будет сложно.
  • Как пользоваться:

  • Скачиваем плагин.
  • Устанавливаем.
  • Активируем.
  • Заходим в админке во вкладку: Дизайн -> Виджеты. Открываем тот виджет, который хотим сделать фиксированным.
  • Ставим галочку возле «Зафиксировать виджет» и нажимаем кнопку «Сохранить».
  • Другие способы реализации скользящих блоков

    Они мне показались менее удобными и не такими понятными, как два метода выше. Но всё же о них расскажу.

    Вариант #1 (без jQuery)

    В сайдбар вставляем:

    Прописываем стили в HTML (лучше добавить сразу в CSS):


    .sticky {
    position: fixed;
    z-index: 101 ;
    }
    .stop {
    position: relative;
    z-index: 101 ;
    }

    Теперь на страницу добавляем сам скрипт (лучше вынести в отдельный файл, как в «Самом рабочем способе»):


    (function() {
    var a = document.querySelector("#aside1" ) , b = null, P = 0 ; // если ноль заменить на число, то блок будет прилипать до того, как верхний край окна браузера дойдёт до верхнего края элемента. Может быть отрицательным числом
    window.addEventListener("scroll" , Ascroll, false) ;
    document.body.addEventListener("scroll" , Ascroll, false) ;
    function Ascroll() {
    if (b == null) {
    var Sa = getComputedStyle(a, "" ) , s = "" ;
    for (var i = 0 ; i < Sa.length; i++) {
    if (Sa[ i] .indexOf("box-sizing" ) == 0 || Sa[ i] .indexOf("overflow" ) == 0 || Sa[ i] .indexOf("width" ) == 0 || Sa[ i] .indexOf("padding" ) == 0 || Sa[ i] .indexOf("border" ) == 0 || Sa[ i] .indexOf("outline" ) == 0 || Sa[ i] .indexOf("box-shadow" ) == 0 || Sa[ i] .indexOf("background" ) == 0 ) {
    s += Sa[ i] + ": " +Sa.getPropertyValue(Sa[ i] ) + "; "
    }
    }
    a.innerHTML = "" +a.innerHTML+"" ;
    b = a.children[ 0 ] ;
    a.style .height = b.getBoundingClientRect() .height + "px" ;
    a.style .padding = "0" ;
    a.style .border = "0" ;
    }
    var Ra = a.getBoundingClientRect() ,
    R = Math.round(Ra.top + b.getBoundingClientRect() .height - document.querySelector("footer" ) .getBoundingClientRect() .top + 0 ) ; // селектор блока, при достижении верхнего края которого нужно открепить прилипающий элемент; Math.round() только для IE; если ноль заменить на число, то блок будет прилипать до того, как нижний край элемента дойдёт до футера
    if ((Ra.top - P)

    < / iframe >

    < / div >

    А вот и CSS:

    /* default height */ #ad { height:60px; } @media only screen and (height:90px) { /* 90 pixels high */ #ad { height:90px; } } @media only screen and (height:125px) { /* 125 pixels high */ #ad { height:125px; } }

    /* default height */

    #ad {

    height : 60px ;

    @media only screen and (height:90px) {

    /* 90 pixels high */

    #ad {

    height : 90px ;

    @media only screen and (height:125px) {

    /* 125 pixels high */

    #ad {

    height : 125px ;

    Отслеживание показов и кликов

    Самое лучшее в объявлениях HTML5 — их можно отслеживать с помощью Google Analytics, как и на обычных веб-сайтах.