Как сделать слайд шоу в html
Перейти к содержимому

Как сделать слайд шоу в html

Как сделать — Адаптивное слайд-шоу или Карусель

Узнайте, как создать Адаптивное слайд-шоу с помощью CSS и JavaScript.

Слайд-шоу / Карусель

Слайд-шоу используется для циклического использования элементов:

Создание слайд-шоу

Шаг 1) добавить HTML:

Пример

<!— Slideshow container —>
<div >
<!— Full-width images with number and caption text —>
<div fade">
<div / 3</div>
<img src="img1.jpg" style="width:100%">
<div > </div>

Шаг 2) добавить CSS:

Стиль кнопки «Далее» и «назад», текст заголовка и точки:

Пример

/* Slideshow container */
.slideshow-container <
max-width: 1000px;
position: relative;
margin: auto;
>

/* Hide the images by default */
.mySlides <
display: none;
>

/* Next & previous buttons */
.prev, .next <
cursor: pointer;
position: absolute;
top: 50%;
width: auto;
margin-top: -22px;
padding: 16px;
color: white;
font-weight: bold;
font-size: 18px;
transition: 0.6s ease;
border-radius: 0 3px 3px 0;
>

/* Position the "next button" to the right */
.next <
right: 0;
border-radius: 3px 0 0 3px;
>

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover <
background-color: rgba(0,0,0,0.8);
>

/* Caption text */
.text <
color: #f2f2f2;
font-size: 15px;
padding: 8px 12px;
position: absolute;
bottom: 8px;
width: 100%;
text-align: center;
>

/* Number text (1/3 etc) */
.numbertext <
color: #f2f2f2;
font-size: 12px;
padding: 8px 12px;
position: absolute;
top: 0;
>

/* The dots/bullets/indicators */
.dot <
cursor: pointer;
height: 15px;
width: 15px;
margin: 0 2px;
background-color: #bbb;
border-radius: 50%;
display: inline-block;
transition: background-color 0.6s ease;
>

.active, .dot:hover <
background-color: #717171;
>

/* Fading animation */
.fade <
-webkit-animation-name: fade;
-webkit-animation-duration: 1.5s;
animation-name: fade;
animation-duration: 1.5s;
>

Шаг 3) добавить JavaScript:

Пример

var slideIndex = 1;
showSlides(slideIndex);

// Next/previous controls
function plusSlides(n) <
showSlides(slideIndex += n);
>

// Thumbnail image controls
function currentSlide(n) <
showSlides(slideIndex = n);
>

function showSlides(n) <
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
if (n > slides.length)
if (n < 1)
for (i = 0; i < slides.length; i++) <
slides[i].style.display = "none";
>
for (i = 0; i < dots.length; i++) <
dots[i].className = dots[i].className.replace(" active", "");
>
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
>

Автоматическое слайдшоу

Чтобы отобразить Автоматическое слайд-шоу, используйте следующий код:

Пример

var slideIndex = 0;
showSlides();

function showSlides() <
var i;
var slides = document.getElementsByClassName("mySlides");
for (i = 0; i < slides.length; i++) <
slides[i].style.display = "none";
>
slideIndex++;
if (slideIndex > slides.length)
slides[slideIndex-1].style.display = "block";
setTimeout(showSlides, 2000); // Change image every 2 seconds
>

Несколько слайд-шоу

Пример

var slideIndex = [1,1];
/* Class the members of each slideshow group with different CSS classes */
var slideId = ["mySlides1", "mySlides2"]
showSlides(1, 0);
showSlides(1, 1);

function plusSlides(n, no) <
showSlides(slideIndex[no] += n, no);
>

function showSlides(n, no) <
var i;
var x = document.getElementsByClassName(slideId[no]);
if (n > x.length)
if (n < 1)
for (i = 0; i < x.length; i++) <
x[i].style.display = "none";
>
x[slideIndex[no]-1].style.display = "block";
>

Совет: Кроме того, проверить, как-слайд-шоу галерея и как-Лайтбокс.

Как создать слайдер изображений или слайд-шоу

Слайдер изображений — это отличный способ отображения различных изображений веб-страницы. Красивые и интересные изображения могут привлечь много посетителей на вашу веб-страницу.

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

Создание слайдеров изображений используя только CSS3

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

Создаем простое JavaScript слайд-шоу без использования JQuery

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

Базовое слайд-шоу

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

В коде CSS галереи для сайта JavaScript нам нужно реализовать следующее:

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

Вот как будет выглядеть ядро CSS :

Далее нужно добавить стили, которые определяют внешний вид простой галереи JavaScript . Я использовал следующие:

JavaScript

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

Программный код галереи JavaScript :

Разберемся, как работает этот код:

  1. Мы используем querySelectorAll , чтобы получить слайды из контейнера;
  2. Далее мы устанавливаем переменную для отслеживания текущего слайда;
  3. Затем мы задаем интервал, чтобы выводить каждый следующий слайд через две секунды ( 2000 мс ).

Давайте более глубоко рассмотрим то, что происходит внутри функции nextSlide :

  • Мы изменяем класс текущего слайда, чтобы он не отображался в JavaScript галерее изображений. CSS свойство transition автоматически обрабатывает постепенное скрытие слайда;
  • После этого мы добавляем класс к текущему слайду. Но при этом используем оператор % , чтобы вернуться обратно к началу, если достигнут последний слайд. Напоминаю, что оператор % делит два числа и возвращает остаток. Это востребовано для реализации такого функционала, как часы или календарь;
  • После того, как мы получили номер нового слайда, мы изменяем его класс, чтобы слайд отображался. CSS свойство transition автоматически обрабатывает эффект исчезновения.

Теперь у нас есть базовое слайд-шоу.

Примечание по совместимости:

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

Вот наша базовая JavaScript галерея фотографий в действии:

UX и доступность

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

Слайд-шоу может скрыть важный контент

Важная информация не должна выводиться через слайд-шоу. По данным исследования Университета Нотр-Дам, только 1,07% пользователей кликают по какому либо элементу слайд-шоу. И из этих 1,07% только небольшая часть, ( 3% или меньше ), кликает по какому-либо слайду, кроме первого. Это иллюстрирует, насколько опасно размещать важный контент в слайд-шоу.

Пользователь может получить искаженное представление о главной цели сайта

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

Специалисты компании WiderFunnel , занимающаяся оптимизацией конверсии, проверили эффективность демонстрации слайдов, и пришли к следующему выводу:

Мобильные пользователи могут быть не в восторге

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

Когда использовать слайд-шоу

Когда же на самом деле стоит отображать слайд-шоу? Вот некоторые предложения.

Создание общего впечатления

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

Когда к контенту легко получить доступ и без слайд-шоу

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

Для общего улучшения качества сайта

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

Указатели для увеличения доступности

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

  1. Дать пользователю возможность остановить слайд-шоу в любой момент;
  2. Создать видимые элементы управления;
  3. Обеспечить правильный и понятный порядок фокусировки слайд-шоу;
  4. Валидный код и таблицы стилей;
  5. Создать равнозначную альтернативу слайд-шоу.

Чтобы слайд-шоу стало более доступным, мы добавим ряд элементов управления.

Добавление элементов управления слайд-шоу

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

Кнопка «Пауза / Проигрывать»

Во-первых, добавим кнопку в HTML :

Затем добавим следующий код JavaScript :

Вот что делает этот скрипт галереи JavaScript :

  • Переменная playing хранит информацию, проигрывается ли слайд-шоу.
  • Мы храним кнопку паузы в переменной, поэтому нам не нужно искать ее.
  • Функция pauseSlideshow приостанавливает проигрывание слайд-шоу и заменяет кнопку “ Pause ” кнопкой » Play «.
  • Функция playSlideshow возобновляет проигрывание слайд-шоу и заменяет кнопку » Play » кнопкой “ Pause ”.
  • Мы добавляем обработчик клика, чтобы кнопка Play/Pause переключала режимы паузы и проигрывания слайд-шоу.

Вот как слайд-шоу будет работать с кнопкой паузы:

Кнопки «Следующий» и «Предыдущий»

Сначала добавьте в HTML кнопки » Next » и » Previous «:

Следующий код галереи JavaScript.

… измените на этот:

В приведенном выше скрипте мы для большей гибкости добавили общую функцию goToSlide . Мы также изменили математику внутри переменной currentSlide , чтобы исключить отрицательные числа. Чтобы проверить себя, выберите число для slides.length и посмотрите, что произойдет с currentSlide после n изменений.

Теперь добавьте этот код, чтобы кнопки галереи для сайта JavaScript делали то, что нам нужно:

Теперь у нас есть рабочие элементы управления.

Вот как выглядит слайд-шоу с элементами управления и некоторыми дополнительными стилями:

Обратите внимание, что мы приостанавливаем проигрывание JavaScript галереи изображений, когда пользователь нажимает кнопку “ Next ” или “ Previous ”, чтобы его самостоятельная навигация по слайдам не была изменена автоматическим проигрыванием.

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

Резервный вариант для тех случаев, когда JavaScript не доступен

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

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

Скрыть элементы управления, когда JavaScript не доступен

Используйте CSS , чтобы по умолчанию скрыть элементы управления простой галереи JavaScript :

Затем примените JavaScript , чтобы отобразить элементы управления. Таким образом, пользователь будет видеть элементы управления только в том случае, когда JavaScript подключен:

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

Вывод изображений в виде списка, когда JavaScript не доступен

Измените для класса .slide свойство position: absolute ; на position: static; . Таким образом, слайды по умолчанию будут выведены в виде списка.

Затем добавьте в JavaScript цикл, чтобы обработать каждый слайд и изменить значение свойства position на absolute . Этот код нужно поместить после определения переменной slides :

Благодаря этому, если JavaScript доступен, слайды не будут выводиться в виде списка.

Заключение

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

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

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

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