WebRazrab

WebRazrab

Ваш помощник в обучении

Array

leafleafleafDocy banner shape 01Docy banner shape 02

Практическое применение. Автоматическое и ручное слайд-шоу. Галерея.

Содержание

Вопрос 1. Автоматическое и ручное слайд-шоу

Вопрос 2. Создание галереи слайд-шоу

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

Вопрос 1. Автоматическое и ручное слайд-шоу.

Для создания слайд-шоу необходимо сделать HTML часть кода (ознакомьтесь с комментариями, оставленными в коде):

<!DOCTYPE HTML>

<html lang=”ru”>

<head>

<meta charset=”UTF-8″>

<title>Шагающие экскаваторы</title>

<!– Нормализуем стили –>

<link rel=”stylesheet” href=”https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css”>

<!– Подключаем собственные стили –>

<link rel=”stylesheet” href=”css/site2.css”>

<!– Отображаем фавикон –>

<link rel=”shortcut icon” type=”image/x-icon” href=”../img/fav/favicon.png”>

<!– Подключаем шрифты –>

<link href=”https://fonts.googleapis.com/css2?family=PT+Sans&display=swap” rel=”stylesheet”>

</head>

<body>

<!– Контейнер слайдшоу –>

<div class=”slideshow-container”>

<!– Блок полноразмерных картинок с номерами и текстом –>

<div class=”mySlides fade”>

<div class=”numbertext”>1 / 4</div>

<img src=”img/ex1.jpg” style=”width:100%”>

<div class=”text”>Шагающий экскаватор НКМЗ</div>

</div>

<div class=”mySlides fade”>

<div class=”numbertext”>2 / 4</div>

<img src=”img/ex2.jpg” style=”width:100%”>

<div class=”text”>Шагающий экскаватор в разрухе</div>

</div>

<div class=”mySlides fade”>

<div class=”numbertext”>3 / 4</div>

<img src=”img/ex3.jpg” style=”width:100%”>

<div class=”text”>Шагающий экскаватор THIESS</div>

</div>

<div class=”mySlides fade”>

<div class=”numbertext”>1 / 4</div>

<img src=”img/ex4.jpg” style=”width:100%”>

<div class=”text”>Шагающий экскаватор ржавеет</div>

</div>

<!– Кнопки вперед и назад –>

<a class=”prev” onclick=”plusSlides(-1)”>&#10094;</a>

<a class=”next” onclick=”plusSlides(1)”>&#10095;</a>

</div>

<br>

<!– точки/круги –>

<div style=”text-align:center”>

<span class=”dot” onclick=”currentSlide(1)”></span>

<span class=”dot” onclick=”currentSlide(2)”></span>

<span class=”dot” onclick=”currentSlide(3)”></span>

<span class=”dot” onclick=”currentSlide(4)”></span>

</div>

<!– Кнопка назад –>

<div class=”pf_sp”>

<a href=”../../index.html” class=”button_back”>&larr;Назад</a>

</div>

На втором шаге мы создаем CSS стили для нашего слайд-шоу.

Тут нам надо создать кнопки “Далее” и “назад”, текст заголовка и точки:

* {box-sizing:border-box}

/* ++++++++++++++++++++++++++++++++++

Контейнер слайдшоу

+++++++++++++++++++++++++++++++++ */

.slideshow-container { max-width: 1000px; position: relative; margin: auto;
}

/* ++++++++++++++++++++++++++++++++++

Прячем картинки по умолчанию

+++++++++++++++++++++++++++++++++ */

.mySlides { display: none;
}

/* ++++++++++++++++++++++++++++++++++

вперед/назад кнопки

+++++++++++++++++++++++++++++++++ */

.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;
}

/* ++++++++++++++++++++++++++++++++++

Позиция кнопки “следующая” справа

+++++++++++++++++++++++++++++++++ */

.next { right: 0;
border-radius: 3px 0 0 3px;
}

/* ++++++++++++++++++++++++++++++++++

hover и цвет заднего фона

+++++++++++++++++++++++++++++++++ */

.prev:hover, .next:hover { background-color: rgba(0,0,0,0.8);
}

/* ++++++++++++++++++++++++++++++++++

текст на картинке

+++++++++++++++++++++++++++++++++ */

.text {
color: #f2f2f2; font-size: 15px;
padding: 8px 12px; position: absolute; bottom: 8px; width: 100%;
text-align: center;
}

/* ++++++++++++++++++++++++++++++++++

текст по номеру 1/3

+++++++++++++++++++++++++++++++++ */

.numbertext { color: #f2f2f2; font-size: 12px;
padding: 8px 12px; position: absolute; top: 0;
}

/* ++++++++++++++++++++++++++++++++++

индикаторы /точки

+++++++++++++++++++++++++++++++++ */

.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;
}

/* ++++++++++++++++++++++++++++++++++

анимация fade

+++++++++++++++++++++++++++++++++ */

.fade {
-webkit-animation-name: fade;
-webkit-animation-duration: 1.5s; animation-name: fade;
animation-duration: 1.5s;
}

/* ++++++++++++++++++++++++++++++++++

@-webkit-keyframes fade { from {opacity: .4}
to {opacity: 1}
}

@keyframes fade { from {opacity: .4}
to {opacity: 1}

/* ++++++++++++++++++++++++++++++++++

кнопка назад

+++++++++++++++++++++++++++++++++ */

.pf_sp {
padding-top: 50px; padding-bottom: 50px; text-align: center;
}

.button_back {
font-family: ‘PT Sans’, sans-serif; font-weight: 700;
text-transform: uppercase; letter-spacing: 1.5px;
text-decoration: none; color: black;
display: inline-block;
border-width: 3px; border-color: black; border-style: solid;
border-radius: 45px; padding-bottom: 8px; padding-top: 8px; padding-left: 25px; padding-right: 25px;
}

.button_back:hover {
/* color: #FFFF00;
*/
color: #FFF; background-color: black;
}

Создание JS.

Для ручного переключения картинок в слайд-шоу необходимо добавить текст:

<script>

var slideIndex = 1; showSlides(slideIndex);

<!– управление вперед/назад –> function plusSlides(n) { showSlides(slideIndex += n);

}

<!– контроль картинок –> 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) {slideIndex = 1} if (n < 1) {slideIndex = slides.length} 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”;

}

</script>

Для автоматического переключения картинок в слайд-шоу необходимо добавить текст:

<script>

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) {slideIndex = 1} slides[slideIndex-1].style.display = “block”;

setTimeout(showSlides, 5000); // менять кадры кадые 2 секунды

}

</script>

Вопрос 2. Создание галереи слайд-шоу.

Создаем HTML.

<!DOCTYPE HTML>

<html lang=”ru”>

<head>

<meta charset=”UTF-8″>

<title>Шагающие экскаваторы</title>

<!– Нормализуем стили –>

<link rel=”stylesheet”

href=”https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css”>

<!– Подключаем собственные стили –>

<link rel=”stylesheet” href=”css/site2.css”>

<!– Отображаем фавикон –>

<link rel=”shortcut icon” type=”image/x-icon” href=”../img/fav/favicon.png”>

<!– Подключаем шрифты –>

<link href=”https://fonts.googleapis.com/css2?family=PT+Sans&display=swap” rel=”stylesheet”>

</head>

<body>

<!– Контейнер слайдшоу –>

<div class=”container”>

<!– Блок полноразмерных картинок с номерами и текстом –>

<div class=”mySlides”>

<div class=”numbertext”>1 / 6</div>

<img src=”img/ex1.jpg” style=”width:100%”>

</div>

<div class=”mySlides”>

<div class=”numbertext”>2 / 6</div>

<img src=”img/ex2.jpg” style=”width:100%”>
</div>

<div class=”mySlides”>

<div class=”numbertext”>3 / 6</div>

<img src=”img/ex3.jpg” style=”width:100%”>

</div>

<div class=”mySlides”>

<div class=”numbertext”>4 / 6</div>

<img src=”img/ex4.jpg” style=”width:100%”>

</div>

<div class=”mySlides”>

<div class=”numbertext”>5 / 6</div>

<img src=”img/ex5.jpg” style=”width:100%”>

</div>

<div class=”mySlides”>

<div class=”numbertext”>6 / 6</div>

<img src=”img/ex6.jpg” style=”width:100%”>

</div>

<!– Кнопки вперед и назад –>

<a class=”prev” onclick=”plusSlides(-1)”>&#10094;</a>

<a class=”next” onclick=”plusSlides(1)”>&#10095;</a>

<!—Текст на картинке –>

<div class=”caption-container”>

<p id=”caption”></p>

</div>

<!– Thumbnail images –>

<div class=”row”>

<div class=”column”>

<img class=”demo cursor” src=”img/ex1.jpg ” style=”width:100%” onclick=”currentSlide(1)” alt=”Эксакатор 1″>

</div>

<div class=”column”>

<img class=”demo cursor” src=”img/ex2.jpg ” style=”width:100%” onclick=”currentSlide(2)” alt=” Эксакатор 2″>

</div>

<div class=”column”>

<img class=”demo cursor” src=”img/ex3.jpg” style=”width:100%” onclick=”currentSlide(3)” alt=” Эксакатор 3″>

</div>

<div class=”column”>

<img class=”demo cursor” src=”img/ex4.jpg” style=”width:100%” onclick=”currentSlide(4)” alt=” Эксакатор 4″>

</div>

<div class=”column”>

<img class=”demo cursor” src=”img/ex5.jpg” style=”width:100%” onclick=”currentSlide(5)” alt=” Эксакатор 5″>

</div>

<div class=”column”>
<p”><img class=”demo cursor” src=”img/ex6.jpg” style=”width:100%” onclick=”currentSlide(6)” alt=” Эксакатор 6″>

</div>

</div>

</div>

CSS код.

* {

box-sizing: border-box;

}

/* Контейнер слайдшоу*/

.container { position: relative;

}

/* Прячем картинки по умолчанию*/

.mySlides { display: none;

}

/* Добавляем точку при курсоре */

.cursor {

cursor: pointer;

}

/* вперед/назад кнопки*/

.prev,

.next {

cursor: pointer; position: absolute; top: 40%;

width: auto; padding: 16px; margin-top: -50px; color: white;

font-weight: bold; font-size: 20px;

border-radius: 0 3px 3px 0; user-select: none;

-webkit-user-select: none;

}

/* Позиция кнопки “следующая” справа*/

.next { right: 0;

border-radius: 3px 0 0 3px;

}

/* hover и цвет заднего фона*/

.prev:hover,

.next:hover {

background-color: rgba(0, 0, 0, 0.8);

}

/* текст по номеру 1/3*/

.numbertext { color: #f2f2f2; font-size: 12px;

padding: 8px 12px; position: absolute; top: 0;

}

/* текст на картинке*/

.caption-container { text-align: center;

background-color: #222; padding: 2px 16px; color: white;

}

.row:after { content: “”; display: table; clear: both;

}

/* Колонки слева/направо */

.column { float: left;

width: 16.66%;

}

/* добавляем анимацию */

.demo { opacity: 0.6;

}

.active,

.demo:hover { opacity: 1;

}

JS код.

var slideIndex = 1; showSlides(slideIndex);

// кнопки вперед/назад function plusSlides(n) { showSlides(slideIndex += n);

}

// управление картинками function currentSlide(n) { showSlides(slideIndex = n);

}

function showSlides(n) { var i;

var slides = document.getElementsByClassName(“mySlides”); var dots = document.getElementsByClassName(“demo”);

var captionText = document.getElementById(“caption”); if (n > slides.length) {slideIndex = 1}

if (n < 1) {slideIndex = slides.length} 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”; captionText.innerHTML = dots[slideIndex-1].alt;

}

Статьи