Проект

Общее

Профиль

Feature #650 » style-script.txt

Василий Малинин, 06.05.2023 20:18

 
<style>
.cup-manufacturerImage {
width: 150px;
height: auto;
vertical-align: top;
margin: 5px;
border: 2px solid white;
cursor: pointer;
}

.cup-manufacturerImage:hover {
border: 2px solid deepskyblue;
}

#cup-blackPanel {
position: absolute;
top: 0;
left:0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.6);
display: none;
z-index: 9998;
}

.cup-msgCloseImage {
position: absolute;
font-size: 18px;
top: 10px;
left: 10px;
color: white;
}

#cup-bigImage {
width: 80vw;
margin: auto;
border-radius: 7px;
z-index: 9999;
}
</style>

<script>
window.addEventListener("DOMContentLoaded", cupInit);

let images,
container,
docStyleOverflow;

function cupInit() {
// Создание и добавление в DOM блоков для вывода слайдов Производителя
let blackPanel = document.createElement('div');
blackPanel.id = 'cup-blackPanel';
let msgClose = document.createElement('div');
msgClose.className = 'cup-msgCloseImage';
msgClose.innerHTML = 'Клик, чтобы закрыть';
let bigImage = document.createElement('img');
bigImage.id = 'cup-bigImage';
blackPanel.append(msgClose);
blackPanel.append(bigImage);
document.body.prepend(blackPanel);

images = document.getElementsByClassName('cup-manufacturerImage');
// Добавление события click для элемента blackPanel (закрытие слайда)
blackPanel.addEventListener('click', function() {
this.style.display = 'none';
bigImage.style.src = '';
// Восстановить прокрутку окна
document.body.style.overflow = docStyleOverflow;
});

// Добавление события click для элементов images
for (var i = 0; i < images.length; i++) {
images[i].addEventListener('click', function() {
blackPanel.style.display = 'flex';
blackPanel.style.top = (window.scrollY - 20) + 'px';
blackPanel.style.bottom = '-' + (window.scrollY) + 'px';
bigImage.src = this.src;
// Запретить прокрутку окна
docStyleOverflow = document.body.style.overflow;
document.body.style.overflow = 'hidden';
});
}
}
</script>
    (1-1/1)