Можно ли создать слайд шоу на html. jQuery слайдер изображений, плагин «slideJS». jQuery плагин «Scale Carousel»

Обзор программ создания слайд-шоу Создание слайд-шоу для сайта

При создании слайд-шоу для размещения на сайте лучше всего воспользоваться готовыми программными решениями. На мой взгляд, оптимальный и самый простой вариант - использование jQuery, специальной бесплатной библиотеки скриптов (небольших программ на JavaScript ). В предыдущих статьях уже рассказывалось об этом замечательном инструменте веб-разработки. Например, смотрите статью Фотогалерея jQuery - просто и красиво! . Теперь применим jQuery для создания слайд-шоу на сайте, так называемого, слайдера.

Для этого воспользуемся плагином Slides , созданным программистом Натаном Салесом (Nathan Searles), техническим директором дизайн-студии "Бригада" ("The Brigade") в Портланде, штат Орегон, США. О другой его разработке рассказывалось в статье Фотогалерея для интернет магазина.

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



Установка слайд-шоу Slides

Как всегда, сначала создаем папку scripts на сайте. Затем надо скачать архив и распаковать его в созданную папку. В ней получится два скрипта jquery-1.8.3.min.js и jquery.cycle.all.min.js .

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




$(".slideshow").cycle({
fx: "fade"
});
});


.slideshow {
width: 200px;
height: 135px;
margin: auto;
}

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

Важное замечание: если на вашем сайте используется несколько плагинов jQuery , то удобнее перенести файл jquery.js (желательно последней версии) в корневую папку, чтобы не загружать его несколько раз. В этом случае, строка обращения к нему будет выглядеть одинаково для всех плагинов. В частности, для нашего примера получается так:

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

Последний шаг - размещение изображений на странице. Здесь также всё просто. Размещаете изображения внутри тега или другого, для которого допустимо устанавливать ширину и высоту, и указываете его class="slideshow" . Для нашего примера HTML-код слайдера выглядит следующим образом:





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

Настройка параметров слайд-шоу Slides

В созданном слайд-шоу можно устанавливать разные виды переходов между кадрами, изменяя javascript , размещенный в заголовке страницы. Кроме того, заменив в скрипте строчку sync:false на sync:true , можно убирать пробел при смене изображений.

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

1. Растворение (наш пример):

$(document).ready(function() {
$(".slideshow").cycle({
fx: "fade", //вид перехода
speed: 1000 , //скорость смены картинки
timeout: 1000 //длительность кадра
});
});

2. Перетасовывание:

$(document).ready(function() {
$(".slideshow").cycle({
fx: "shuffle",
sync: false,
speed: 500 ,
timeout: 5000
});
});

3. Зум:

$(document).ready(function() {
$(".slideshow").cycle({
fx: "zoom",
sync: false
});
});

4. Переворот по оси X или Y:

$(document).ready(function() {
$(".slideshow").cycle({
fx: "curtainX", // для поворота по оси Y - curtainY
sync: false
});
});

5. Сворачивание по вертикали:

$(document).ready(function() {
$(".slideshow").cycle({
fx: "turnDown", // направление можно задать turnUp, turnLeft, turnRight
sync: true
});
});

6. Скроллинг (смещение):

$(document).ready(function() {
$(".slideshow").cycle({
fx:"scrollDown", // направление смещения можно задать scrollUp, scrollLeft, scrollRight
sync: true
});
});

7. Наплыв справа:

$(document).ready(function() {
$(".slideshow").cycle({
fx: "cover
});
});

Иногда нужно разместить несколько вариантов слайд-шоу на одной странице сайта, как это сделано в данной статье. Для этого надо просто указывать разные классы для каждого варианта в строчке $(".slideshow").cycle({ (смотрите код в таблице выше), и не забудьте прописать в CSS размеры окна для каждого класса.


HTML слайд шоу из фотографий легко добавит блеска вашей странице и вы получите внимание как посетителей, так и поисковых систем. Cincopa предлагает вам несколько потрясающих и быстро настраиваемых скинов, которые позволят показать многочисленные фотографии или видео на относительно небольшом пространстве и без использования квоты сервера, благодаря бесплатному хостингу и доставке (пакет которого может быть увеличен за определенную оплату). Вся процедура создания и вставки слайд шоу HTML занимает несколько минут и очень легко завершается, даже если у вас нулевые знания в области программирования.

HTML слайдер из фотографий Cincopa является удивительно эффективным, надежным и привлекательным. Технические требования выполняются автоматически программой для создания слайд шоу, и все, что вам действительно нужно сделать, чтобы создать слайд шоу HTML, просто загрузить высококачественные мультимедийные файлы. Эти файлы могут быть загружены с любого из ваших устройств или из социальных сетей, таких как Facebook или Instagram.

СКИНЫ HTML СЛАЙД ШОУ от Cincopa Как это работает

1 Выбери один из наших удивительных скинов

2 Загрузи свои файлы на,облако” Cincopa

3 Получи простой код и вставь на своем сайте

ВЫБЕРИ СКИН HTML СЛАЙД-ШОУ

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

ЗАГРУЗИ МЕДИА ФАЙЛЫ

Вы можете загрузить столько файлов, сколько вы хотите с вашего рабочего стола, портативных устройств или непосредственно из веб-камеры, а также из любого внешнего веб-источника. Организуйте ваши файлы на,облаке” Cincopa; Cincopa позаботиться о преобразование ваших фотографий, изменение размера и других адаптаций. Дизайн HTML слайд-шоу может быть изменен позже из любого вашего устройства.

ВСТАВЬ СГЕНЕРИРОВАННЫЙ КОД

Простой пошаговый интерфейс Cincopa предложит вам выбрать способ; это означает, что если вы управляете сайтом на основе HTML вы должны выбрать вариант “слайд-шоу HTML”. Скопируйте строку кода, созданную с помощью приложения и вставьте его в любом месте на вашем сайте.

Зачем пользоваться программой для создания HTML слайд шоу Cincopa?

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

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

ОСНОВНЫЕ ХАРАКТЕРИСТИКИ СЛАЙД-ШОУ HTML:
  • Совместимость со всеми основными браузерами
  • Полная масштабируемость
  • Удаленный доступ
  • Cooliris вид
  • Система CDN
  • Добавьте неограниченное количество файлов - неограниченные квотой вашего сервера
  • Множество скинов
  • Автоматические преобразования и изменение размера фотографий
  • Разрешение или запрещение скачивания ваших файлов
  • Автоматическое резервное копирование и отчеты
  • Оптимизированый SEO
  • Множество вариантов настройки (размер, расположение, перетасование, автоматический поворот и т.д.)
  • Легкое управление с помощью простого визарда
  • Бесплатный хостинг и доставка (до 400 Мб памяти и 200 Мб трафика в месяц)
  • Запретив использование JavaScript, Вы не сможете видеть интересные примеры слайд-шоу!

    Слайд-шоу для сайта

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

    И это не случайно!

    **Примечание. В отличие от других страниц раздела jQuery , нужные скрипты прописал непосредственно в HTML-код самой этой страницы .
    Кроме того, что очень важно(!) , они работают у меня от другой версии jQuery , более поздней, чем использую здесь.

    Если там использую версию jquery v.1.10.1.min , то здесь v.1.8.3.min

    Однако, подробнее об этом и обо всём остальном, по-порядку - дальше.

    Подготовка слайд-шоу

    Работа по созданию и установке слайд-шоу на сайте обычно состоит из 4-ёх основных этапов.

    Подготовка изображений для слайдера

    1. Подобрал фотографии. Главное - чтобы они были обязательно одного размера . Нужно их тщательно измерить.
    В данном случае, взял готовые картинки из дополнительных материалов, приложенных к обучающему курсу. Какому? Об этом здесь: "Ссылки" (откроется в новом окне) .

    2. Нарисовал в фотошоп графическое изображение слайдера в стиле "телевизор" . Пусть не оригинально, зато очень удобно.
    Главное - размер просмотровой зоны нужен немного больше по ширине и высоте, чем у подготовленных рисунков.

    Создание HTML+CSS каркаса для слайд-шоу

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

    Разместил сами изображения внутри тэга p , для которого установил в стилях CSS ширину и высоту, и указал его class="slideshow" . А сам абзац с ними поместил внутрь общего тэга div , на фон которого повесил подготовленное графическое изображение слайдера (телевизор* ). Ему дал class="slider_fon" .
    Причём, только для него , чтоб разгрузить страницу, подключил внешнюю таблицу стилей, а для рисунков всё делал внутри HTML-кода .

    P.S.** Последнее действие вовсе НЕ обязательно. Просто, мне так удобнее. Структура страницы логичнее как-то выглядит.

    В правилах CSS указал размер окна для изображений, которые потом будут появляться в слайдере (width - height ) . Естественно, у всех изображений должен быть одинаковый размер .
    При желании, мог расширить CSS-параметры , добавив, скажем, рамки, фон, отступы и прочие элементы. Однако, думаю, это уже было бы лишним.

    Если же, всё-таки, Вам захочется так сделать, то, размеры указывайте ОБЩИЕ , то есть: изображение + ВСЕ установленные отступы и границы .

    Подключение скриптов

    Рекомендую посетить справочную страницу , которую делал для себя во время изучения технологии jQuery. Очень поможет Вам разобраться.
    Открыл к ней общий доступ: "ВЫБОРКА в jQuery" (откроется в новом окне) .

    Как всегда, сначала создал папку js на сайте. Затем скачал нужные скрипты для слайд-шоу (архив ), и распаковал его в эту папку. В ней получилось два файла скриптов: ядро jquery-1.8.3.min.js и плагин jquery.cycle.all.min.js .

    В неё же, на всякий случай, добавил и свой управляющий файл myscripts11.js . Однако, здесь он мне не пригодился для запуска и демонстрации слайд-шоу. Разве что, проверил им правильное подключение созданной папки.
    Но... ..., пусть будет. Мало ли, что в дальнейшем захочу сделать с размещёнными здесь слайдерами. Короче, "... наш бронепоезд всегда на запасном пути" .

    Дальше. Внутрь тэга ... вставил строчки, где прописал пути к скриптам. У меня они: , и к плагину: .
    Свой ("запасной") управляющий файл закомментировал .

    И последнее -

    Зашедшие на мой сайт с отключённым в браузере интерпретатором JavaScript , наблюдать слайд-шоу , разумеется, не смогут .
    Они увидят рисунки так, как те прописаны в HTML-коде , т.е. в столбик, друг за другом.
    Для них сделал строчку-предупреждение и вставил её в тэг ... .

    Ну вот! Слайд-шоу создано. Осталось настроить его параметры: скорость смены рисунков, способы их показа, и т.д..

    Настройка параметров слайд-шоу

    Как уже писал выше, (в примечании** ), нужные скрипты прописал непосредственно в HTML-код самой этой страницы.
    В созданном у себя на сайте слайд-шоу, применил настройки "по умолчанию" .

    Вообще же, легко установить различные, интересные типы переходов между картинками, изменяя javascript , размещённый в теле страницы.
    Скажем, изменив в скрипте строчку sync: false на sync: true , можно убрать пробел при смене изображений.

    Важное замечание!
    Разные версии jQuery могут конфликтовать друг с другом, если они на одной странице.
    Обязательно(!) проверяйте работу плагинов с установленной версией jQuery , поскольку не все версии сочетаются!

    Пример**
    На других страницах раздела jQuery , использующих библиотеку, установлена версия jquery v.1.10.1.min . Так вот, она более современная, чем v.1.8.3.min , от которой исправно(!) работают слайдеры слайд-шоу здесь.

    Плагин jquery.cycle.all.min.js с ней НЕ РАБОТАЕТ!!!
    (проверено )

    Впрочем, не огорчайтесь. Всё в Ваших руках!
    В разделе моего сайта "Полезное" (откроется в новом окне) найдёте испытанный(!) полный комплект нужных скриптов для создания такого слайд-шоу на своём сайте. (Разумеется, БЕСПЛАТНО!)

    Другие виды слайд-шоу

    Не буду в этом подразделе столь подробно описывать все действия по созданию слайд-шоу. В принципе, они абсолютно одинаковые.
    Даже проще. Не нужно рисовать фоновую картинку слайдера в фотошоп. Даже отдельная таблица стилей CSS не понадобится.

    Если хотите разместить различные варианты слайд-шоу на одной странице сайта, как я это сделал здесь (увидите ниже ), указывайте разные классы для каждого варианта в строчке скрипта $(".slideshow ").cycle({

    P.S.* Не забудьте прописать в CSS размеры окна для каждого класса , если, всё же, будете использовать таблицу стилей . Мне она не понадобилась.

    Посмотрите сначала на неподвижные рисунки, которые, аналогично, взял из обучающего курса (Какого? Повторю ссылку: "Ссылки" ) , и разместил их здесь для сравнения.

    Вот они. Будущие участники 7-ми слайд-шоу!
    Смотрите их "выступление" ниже.

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

    1. Растворение ("fade"):
    Аналогичен верхнему примеру с мотоциклами.
    2. Перетасовывание ("shuffle"):
    3. Зум ("zoom"):
    4. Переворот по осям ("curtainX" или Y):
    Здесь установил "curtainX" .
    5. Сворачивание по вертикали ("turnDown"):
    Здесь сворачивается вниз, а можно установить и другие виды переходов: turnUP, Left, Right .
    6. Скроллинг ("scrollDown"):
    Смещение. Здесь установил вниз, а кроме этого можно
    устанавливать: scrollUp, Left, Right .

    Вероятно, что вы уже слышали о новом элементе HTML5 canvas . Это специальный элемент, который позволяет создавать и модифицировать графику. К тому же, мы можем использовать его как любой другой элемент на странице - применять анимации jQuery для него, обрабатывать события для него и интегрировать его в шаблон.

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

    Идея

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


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

    HTML

    Начнем с создания разметки HTML.

    html5-slideshow.html

    Слайд шоу на основе элемента HTML5 сanvas и jQuery | Демонстрация для сайта сайт

    Разметка для слайдшоу очень проста. Основной элемент div #slideshow содержит неупорядоченный список и стрелки на следующий и предыдущий слайды. Неупорядоченный список содержит слайды, которые определены как элементы li . На иллюстрации выше показано, что элемент canvas с модифицированным изображением будет вставляться сюда.

    В конце включаются jQuery и наш файл script.js , который будет разбираться позже в данном уроке.

    CSS

    Все стили для слайдшоу содержатся в файле styles.css . Мы используем id основного элемента #slideshow в качестве определения пространства имен, поэтому можно просто добавить данные стили к вашему проекту без риска конфликта имен.

    styles.css

    #slideshow{ background-color:#F5F5F5; border:1px solid #FFFFFF; height:340px; margin:150px auto 0; position:relative; width:640px; -moz-box-shadow:0 0 22px #111; -webkit-box-shadow:0 0 22px #111; box-shadow:0 0 22px #111; } #slideshow ul{ height:320px; left:10px; list-style:none outside none; overflow:hidden; position:absolute; top:10px; width:620px; } #slideshow li{ position:absolute; display:none; z-index:10; } #slideshow li:first-child{ display:block; z-index:1000; } #slideshow .slideActive{ z-index:1000; } #slideshow canvas{ display:none; position:absolute; z-index:100; } #slideshow .arrow{ height:86px; width:60px; position:absolute; background:url("img/arrows.png") no-repeat; top:50%; margin-top:-43px; cursor:pointer; z-index:5000; } #slideshow .previous{ background-position:left top;left:0;} #slideshow .previous:hover{ background-position:left bottom;} #slideshow .next{ background-position:right top;right:0;} #slideshow .next:hover{ background-position:right bottom;}

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

    • Те, у кого отключен JavaScript . Такие пользователи будут видеть только первый слайд, у них не будет возможности переключиться на другие слайды.
    • Те, у кого включен JavaScript, но отсутствует поддержка элемента canvas . Для таких посетителей слайды будут переключаться мгновенно без эффекта перехода.
    • Те, у кого включена поддержка JavaScript и поддерживается элемент canvas . Эта группа использует последние версии Firefox, Safari, Chrome, Opera. Они будут видеть слайдшоу во всей красе.

    Правила разработаны с учетом первых двух групп. С помощью селектора first-child будет выводиться только первый слайд по умолчанию.


    JavaScript

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

    script.js - Часть 1

    $(window).load(function(){ // Мы используем событие window.load, поэтому уверены, что // изображения слайдшоу загружены без ошибок. // Проверяем, поддерживает ли текущий браузер элемент canvas: var supportCanvas = "getContext" in document.createElement("canvas"); // Манипуляции с элементом canvas создают интенсивную нагрузку на процессор, // поэтому мы используем setTimeout, чтобы сделать работу асинхронной и улучшить // время отклика страницы var slides = $("#slideshow li"), current = 0, slideshow = {width:0,height:0}; setTimeout(function(){ window.console && window.console.time && console.time("Сгенерировано за:"); if(supportCanvas){ $("#slideshow img").each(function(){ if(!slideshow.width){ // Получаем размеры первого изображения: slideshow.width = this.width; slideshow.height = this.height; } // Выводим модифицированную версию изображения createCanvasOverlay(this); }); } window.console && window.console.timeEnd && console.timeEnd("Сгенерировано за:"); $("#slideshow .arrow").click(function(){ var li = slides.eq(current), canvas = li.find("canvas"), nextIndex = 0; // В зависимости от того, какая стрелка была нажата, // вычисляем индекс следующего слайда if($(this).hasClass("next")){ nextIndex = current >= slides.length-1 ? 0: current+1; } else { nextIndex = current

    • Cougar
    • Lions
    • Snowalker
    • Howling
    • Sunbathing

    Div id="slider"
    Это основной контейнер слайдера. У него нет определенной функции, но он нам нужен, чтобы приостановить анимацию.

    Div id="mask"
    Мы будем использовать этот блок, чтобы скрыть всё, что происходит за пределами слайдера. В дополнение к этому, маска позволяет нам отображать содержание слайдера.

    Li id="first" class="firstanimation"
    У каждого элемента списка есть ID и класс. ID выводит на экран подсказку, а класс привязан к анимации, которая должна произойти.

    Div class="tooltip"
    Этот блок выводит на экран заголовок изображения. Можете изменить его в зависимости от потребностей, например, делая его кликабельным или добавляя краткое описание.

    Div class="progress-bar"
    Этот блок содержит функцию, которая показывает прогресс выполнения анимации.

    Теперь пришло время к формированию CSS-файла.

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

    /* Структура слайдера */ #slider { background: #000; border: 5px solid #eaeaea; box-shadow: 1px 1px 5px rgba(0,0,0,0.7); height: 320px; width: 680px; margin: 40px auto 0; overflow: visible; position: relative; }

    Класс " mask " скроет все элементы, которые расположены за пределами слайдера. Его высота должна быть равной высоте слайдера.

    /* Прячем все за пределами слайдера */ #mask { overflow: hidden; height: 320px; }

    Наконец, чтобы отсортировать список изображений, будем использовать " position: absolute " и " top: -325px " так, чтобы все изображения были расположены за пределами слайдера.

    /* Список изображений */ #slider ul { margin: 0; padding: 0; position: relative; } #slider li { width: 680px; /* Ширина изображения */ height: 320px; /* Высота изображения */ position: absolute; top: -325px; /* Исходное положение (за пределами слайдера) */ list-style: none; }

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

    4. CSS3-анимация по ключевым кадрам

    Прежде, чем мы начнем с анимации, мы должны определить некоторые параметры, чтобы получить правильное представление анимации.
    Как мы знаем, полная продолжительность анимации составит 25 секунд, но мы должны знать, сколько будет ключевых кадров в 1 секунде.
    Давайте решим ряд операций, который даст нам точное число ключевых кадров и полную продолжительность анимации. Вот вычисления:
    Определяем общее количество изображений, в слайдере: 5 ;
    Определяем продолжительность анимации для каждого изображения: 5 секунд ;
    Определяем полную продолжительность анимации, умножая общее количество изображений на продолжительность каждого: 5 изображений × 5 секунд = 25 секунд ;
    Вычисляем, сколько ключевых кадров (процентов) будет в одной секунде.
    Делим общее количество ключевых кадров на полную продолжительность анимации: 100%/25 = 4% ,
    В одной секунде 4 ключевых кадров, или 1 секунда равна 4% от анимации.

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

    #slider li.firstanimation { animation: cycle 25s linear infinite; } #slider li.secondanimation { animation: cycletwo 25s linear infinite; } #slider li.thirdanimation { animation: cyclethree 25s linear infinite; } #slider li.fourthanimation { animation: cyclefour 25s linear infinite; } #slider li.fifthanimation { animation: cyclefive 25s linear infinite; }

    Как только свойства анимации были присвоены, мы должны использовать ключевые кадры, чтобы привести анимацию в движение.
    Следуя этому принципу, мы можем соединить все анимации друг с другом, даже если они независимы друг от друга. Это и даст нам бесконечный цикл.
    Я добавил свойства " opacity " и " z-index ", чтобы сделать переход от одного изображения к следующему более привлекательным.
    Как видите в коде, у первой анимации больше ключевых кадров, чем у остальных. Причина этого состоит в том, что, когда слайдер запущен, первое изображение освобождает место для второго, но когда последнее изображение закончит свою анимацию, у первого изображения должны быть дополнительные ключевые кадры, чтобы не создавать прерываний между циклами анимации.

    Вот весь код для анимаций:
    /* Анимация */ @keyframes cycle { 0% { top: 0px; } /* При запуске слайдера, первое изображение уже видимо */ 4% { top: 0px; } /* Стартовая позиция */ 16% { top: 0px; opacity:1; z-index:0; } /* С 4% до 16 % (3 секунды) изображение видимо */ 20% { top: 325px; opacity: 0; z-index: 0; } /* с 16% до 20% (1 секунды)выход изображения*/ 21% { top: -325px; opacity: 0; z-index: -1; } /* Возвращение на исходную позицию за пределами маски */ 92% { top: -325px; opacity: 0; z-index: 0; } 96% { top: -325px; opacity: 0; } /* С 96% до 100% (1 секунда) – вход */ 100%{ top: 0px; opacity: 1; } } @keyframes cycletwo { 0% { top: -325px; opacity: 0; } /* Исходная позиция за пределами маски */ 16% { top: -325px; opacity: 0; }/* Начало движения с 16% */ 20% { top: 0px; opacity: 1; } 24% { top: 0px; opacity: 1; } /* С 20% до 24% (в течении 1 секунды) - вход*/ 36% { top: 0px; opacity: 1; z-index: 0; } /* С 24% до 36 % (3 секунды) изображение видимо */ 40% { top: 325px; opacity: 0; z-index: 0; } /* С 36% до 40% (1 секунда)- выход */ 41% { top: -325px; opacity: 0; z-index: -1; } /* Возврат на исходную позицию */ 100%{ top: -325px; opacity: 0; z-index: -1; } } @keyframes cyclethree { 0% { top: -325px; opacity: 0; } 36% { top: -325px; opacity: 0; } 40% { top: 0px; opacity: 1; } 44% { top: 0px; opacity: 1; } 56% { top: 0px; opacity: 1; } 60% { top: 325px; opacity: 0; z-index: 0; } 61% { top: -325px; opacity: 0; z-index: -1; } 100%{ top: -325px; opacity: 0; z-index: -1; } } @keyframes cyclefour { 0% { top: -325px; opacity: 0; } 56% { top: -325px; opacity: 0; } 60% { top: 0px; opacity: 1; } 64% { top: 0px; opacity: 1; } 76% { top: 0px; opacity: 1; z-index: 0; } 80% { top: 325px; opacity: 0; z-index: 0; } 81% { top: -325px; opacity: 0; z-index: -1; } 100%{ top: -325px; opacity: 0; z-index: -1; } } @keyframes cyclefive { 0% { top: -325px; opacity: 0; } 76% { top: -325px; opacity: 0; } 80% { top: 0px; opacity: 1; } 84% { top: 0px; opacity: 1; } 96% { top: 0px; opacity: 1; z-index: 0; } 100%{ top: 325px; opacity: 0; z-index: 0; } }

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

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

    /* Индикатор выполнения */ .progress-bar { position: relative; top: -5px; width: 680px; height: 5px; background: #000; animation: fullexpand 25s ease-out infinite; }

    Не бойтесь синтаксиса. Тут есть такая же функция как «from to». Вы можете увидеть, что ключевые кадры устанавливают появление и исчезновение каждого изображения.

    /* Строка состояния анимации */ @keyframes fullexpand { /* В этих ключевых кадрах анимация стационарна */ 0%, 20%, 40%, 60%, 80%, 100% { width: 0%; opacity: 0; } /* В этих - оживает */ 4%, 24%, 44%, 64%, 84% { width: 0%; opacity: 0.3; } /* В этих - плавно заполняется */ 16%, 36%, 56%, 76%, 96% { width: 100%; opacity: 0.7; } /* В этих ключевых кадрах индикатор выполнения завершил свой путь */ 17%, 37%, 57%, 77%, 97% { width: 100%; opacity: 0.3; } /* В этих ключевых кадрах индикатор выполнения исчезнет, а затем возобновит цикл */ 18%, 38%, 58%, 78%, 98% { width: 100%; opacity: 0; } }

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

    Стили для подсказок:
    #slider .tooltip { background: rgba(0,0,0,0.7); width: 300px; height: 60px; position: relative; bottom: 75px; left: -320px; } #slider .tooltip h1 { color: #fff; font-size: 24px; font-weight: 300; line-height: 60px; padding: 0 0 0 10px; }

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

    7. CSS3-переходы

    Мы увидели, как применить CSS3-переходы к элементам, теперь давайте сделаем их для подсказок.
    Если помните, мы добавили ID к каждому списку («first», «second», и т.д.), чтобы при наведении каждая подсказка была связана с отдельным изображением, при этом не появлялись все подсказки сразу.

    #slider .tooltip { … transition: all 0.3s ease-in-out; } #slider li#first: hover .tooltip, #slider li#second: hover .tooltip, #slider li#third: hover .tooltip, #slider li#fourth: hover .tooltip, #slider li#fifth: hover .tooltip { left: 0px; }

    8. Пауза и рестарт

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

    #slider: hover li, #slider: hover .progress-bar { animation-play-state: paused; }

    9. Демонстрация Наконец, мы дошли до конца урока. Слайдер теперь готов на 100%!
    (). Она работает в Firefox 5+, Safari 4+ и Google Chrome, а также iPhone и iPad. Можете также загрузить архив ().
    Спасибо Massimo Righi за его изображения.10. Заключение Эффект внушителен, но по общему признанию, этот слайдер не очень универсален. Например, чтобы добавить больше изображений, необходимо отредактировать все ключевые кадры. У CSS3 есть большой потенциал, но у него действительно есть пределы, и иногда JavaScript более предпочтителен, в зависимости от целевой аудитории.
    У этого слайдера есть некоторые интересные функции, такие как пауза (при наведении) и уникальные ссылки для изображений, которые позволяют пользователям взаимодействовать со слайдером. Если необходима полная поддержка всеми браузерами, то использование CSS3 не возможно, таким образом, рекомендуется JavaScript. К сожалению, у CSS3-анимации есть много ограничений. На данный момент, из-за нехватки гибкости, мы не имеем возможности широкого использования. Надеюсь, эта статья будет стимулировать вас к дальнейшему изучению CSS3.
    Не стесняйтесь делиться мыслями в комментариях.

    От переводчика:
    Если вы нашли какие-то ошибки перевода, прошу отписаться в личных сообщениях. Спасибо.

    Теги: Добавить метки