2025-08-16 08:37:11 +00:00

363 lines
10 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<title>ItcSlider - Example 06</title>
<link href="../itc-slider.css" rel="stylesheet">
<script defer src="../itc-slider.js"></script>
<style>
*,
*::before,
*::after {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
'Segoe UI Symbol';
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #292b2c;
background-color: #fff;
margin: 0;
padding: 0;
}
/* Стили модального окна */
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 1050;
opacity: 0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modal-open {
opacity: 1;
pointer-events: auto;
overflow-y: auto;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
@media (min-width: 576px) {
.modal-dialog {
max-width: 600px;
margin: 30px auto;
}
}
.modal-content {
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
background-color: #fff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, .2);
border-radius: .3rem;
outline: 0;
}
@media (min-width: 768px) {
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
}
}
.modal-header {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 15px;
border-bottom: 1px solid #eceeef;
}
.modal-title {
margin-top: 0;
margin-bottom: 0;
line-height: 1.5;
font-size: 1.25rem;
font-weight: 500;
}
.close {
float: right;
font-family: sans-serif;
font-size: 24px;
font-weight: 700;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #fff;
opacity: .5;
text-decoration: none;
}
.close:focus,
.close:hover {
color: #000;
text-decoration: none;
cursor: pointer;
opacity: .75;
}
.modal-body {
position: relative;
-webkit-box-flex: 1;
-webkit-flex: 1 1 auto;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: 15px;
overflow: auto;
}
/* Стили слайдера */
.itc-slider {
max-width: 600px;
margin: 0 auto;
}
.itc-slider-items {
counter-reset: slide;
}
.itc-slider-item {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
counter-increment: slide;
height: 250px;
position: relative;
}
.itc-slider-item::before {
content: counter(slide) "/5";
position: absolute;
top: 10px;
right: 20px;
color: #fff;
font-style: italic;
font-size: 32px;
font-weight: bold;
display: block;
}
.itc-slider-item:nth-child(1) {
background-color: #f44336;
}
.itc-slider-item:nth-child(2) {
background-color: #9c27b0;
}
.itc-slider-item:nth-child(3) {
background-color: #3f51b5;
}
.itc-slider-item:nth-child(4) {
background-color: #03a9f4;
}
.itc-slider-item:nth-child(5) {
background-color: #4caf50;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', () => {
const scrollbar = document.body.clientWidth - window.innerWidth + 'px';
let elSlider1;
let elSlider2;
let elSlider3;
let elSlider4;
document.querySelector('[data-target="modal-1"]').addEventListener('click', (e) => {
e.preventDefault();
document.body.style.overflow = 'hidden';
document.querySelector('#modal-1').style.marginLeft = scrollbar;
document.querySelector('#modal-1').classList.add('modal-open');
if (elSlider1 === undefined) {
elSlider1 = ItcSlider.getOrCreateInstance('.itc-slider-1', {loop: false});
} else {
elSlider1.reset();
}
if (elSlider2 === undefined) {
elSlider2 = ItcSlider.getOrCreateInstance('.itc-slider-2', {loop: true});
} else {
elSlider2.reset();
}
});
document.querySelector('[data-target="modal-2"]').addEventListener('click', (e) => {
e.preventDefault();
document.body.style.overflow = 'hidden';
document.querySelector('#modal-2').style.marginLeft = scrollbar;
document.querySelector('#modal-2').classList.add('modal-open');
if (elSlider3 === undefined) {
elSlider3 = ItcSlider.getOrCreateInstance('.itc-slider-3', {loop: false});
} else {
elSlider3.reset();
}
});
document.addEventListener('click', (e) => {
if (e.target.closest('[data-target="close"]')) {
e.preventDefault();
const modal = e.target.closest('.modal');
document.body.style.overflow = 'visible';
modal.style.marginLeft = '0px';
modal.classList.remove('modal-open');
if (modal.id === 'modal-1') {
elSlider1.autoplay.stop();
elSlider2.autoplay.stop();
} else if(modal.id === 'modal-2') {
elSlider3.autoplay.stop();
}
}
});
});
</script>
</head>
<body>
<h1 style="text-align: center; margin-top: 20px; margin-bottom: 20px;">Слайдер в модальном окне</h1>
<div class="container">
<div style="text-align: center;">
<a data-target="modal-1" href="#">Открыть модальное окно 1</a>
<br>
<a data-target="modal-2" href="#">Открыть модальное окно 2</a>
</div>
<div class="modal" id="modal-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Слайдер в модальном окне</h3>
<a class="close" data-target="close" href="#" title="Close">×</a>
</div>
<div class="modal-body">
<div class="itc-slider itc-slider-1"><!-- Слайдер (начало) -->
<div class="itc-slider-wrapper">
<div class="itc-slider-items">
<div class="itc-slider-item">
<!-- Контент 1 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 2 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 3 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 4 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 5 слайда -->
</div>
</div>
</div>
<button class="itc-slider-btn itc-slider-btn-prev"></button>
<button class="itc-slider-btn itc-slider-btn-next"></button>
</div><!-- Слайдер (конец) -->
<br>
<div class="itc-slider itc-slider-2"><!-- Слайдер (начало) -->
<div class="itc-slider-wrapper">
<div class="itc-slider-items">
<div class="itc-slider-item">
<!-- Контент 1 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 2 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 3 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 4 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 5 слайда -->
</div>
</div>
</div>
<button class="itc-slider-btn itc-slider-btn-prev"></button>
<button class="itc-slider-btn itc-slider-btn-next"></button>
</div><!-- Слайдер (конец) -->
</div>
</div>
</div>
</div>
<div class="modal" id="modal-2">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Слайдер 3 в модальном окне</h3>
<a class="close" data-target="close" href="#" title="Close">×</a>
</div>
<div class="modal-body">
<div class="itc-slider itc-slider-3"><!-- Слайдер (начало) -->
<div class="itc-slider-wrapper">
<div class="itc-slider-items">
<div class="itc-slider-item">
<!-- Контент 1 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 2 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 3 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 4 слайда -->
</div>
<div class="itc-slider-item">
<!-- Контент 5 слайда -->
</div>
</div>
</div>
<button class="itc-slider-btn itc-slider-btn-prev"></button>
<button class="itc-slider-btn itc-slider-btn-next"></button>
</div><!-- Слайдер (конец) -->
</div>
</div>
</div>
</div>
</div>
</body>
</html>