- 13, May 2024
- #1
Привет, у меня есть лайтбокс-карусель на чистом CSS, который работает нормально.
Однако я хотел бы сделать три вещи:
-Когда я нажимаю ESC, это имитирует нажатие кнопки закрытия;
-при нажатии влево и вправо имитируется нажатие кнопки влево/вправо; и,
- когда я нажимаю на изображение, лайтбокс закрывается.
В идеале было бы здорово, если бы это можно было сделать на чистом CSS.
Вот скрипка: https://jsfiddle.net/postcolonialboy/Lxa2pgrw/3/
(Если нет, готов принять jquery) Вот что у меня есть:
Однако я хотел бы сделать три вещи:
-Когда я нажимаю ESC, это имитирует нажатие кнопки закрытия;
-при нажатии влево и вправо имитируется нажатие кнопки влево/вправо; и,
- когда я нажимаю на изображение, лайтбокс закрывается.
В идеале было бы здорово, если бы это можно было сделать на чистом CSS.
Вот скрипка: https://jsfiddle.net/postcolonialboy/Lxa2pgrw/3/
(Если нет, готов принять jquery) Вот что у меня есть:
.lightbox__slide img {
position: absolute;
z-index: 30;
max-width: 90%;
max-height: 80%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
animation-name: hide;
animation-duration: 0.5s;
animation-iteration-count: 1;
animation-direction: linear;
animation-fill-mode: forwards;
}
.lightbox__slide:target .btn {
display: block;
}
.lightbox__slide:target img {
opacity: 0;
animation-name: show;
animation-duration: 0.5s;
animation-iteration-count: 1;
animation-direction: linear;
animation-fill-mode: forwards;
}
.lightbox__slide:target~.lightbox__bg {
position: relative;
background: white;
opacity: 0.6;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}
@-webkit-keyframes show {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes hide {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.btn {
position: absolute;
z-index: 20;
display: none;
transition: all 0.2s;
width: 40px;
height: 40px;
margin: -20px 0 0 -20px;
text-align: center;
line-height: 40px;
text-decoration: none;
color: black;
}
.btn:hover {
background: rgba(255, 255, 255, 0.8);
}
.btn--close {
top: 40px;
right: 20px;
}
.btn--close:after {
content: '\2715';
}
.btn--left {
top: 50%;
left: 40px;
}
.btn--left:after {
content: '⯇';
}
.btn--right {
top: 50%;
right: 20px;
}
.btn--right:after {
content: '⯈';
}
HTML:
<span class="feature_category active" id="A"> <div class="feature_box_wrapper"><a href="#groys1">Link</a></div> <div class="feature_box_wrapper"><a href="#groys2">Link</a></div> <div class="feature_box_wrapper"><a href="#groys3">Link</a></div> <div class="feature_box_wrapper"><a href="#groys4">Link</a></div> <div class="feature_box_wrapper"><a href="#groys5">Link</a></div> </span> <div class="lightbox"> <!-- Groys --> <div class="lightbox__slide" id="groys1"> <a href="#_" class="btn btn--close"></a> <a href="#groys5" class="btn btn--left"></a> <a href="#groys2" class="btn btn--right"></a> <img src="[URL='https://lumtu.com/yti/NQzzQNTBodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9waWNzdW0vODAwLADO']https://picsum.photos/seed/picsum/800/450[/URL]" alt="Скриншот вашего сайта"> </div> <div class="lightbox__slide" id="groys2"> <a href="#_" class="btn btn--close"></a> <a href="#groys1" class="btn btn--left"></a> <a href="#groys3" class="btn btn--right"></a> <img src="[URL='https://lumtu.com/yti/NQzzQNTBodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9waWNzdW0vODAwLADO']https://picsum.photos/seed/picsum/800/450[/URL]" alt="Скриншот вашего сайта"> </div> <div class="lightbox__slide" id="groys3"> <a href="#_" class="btn btn--close"></a> <a href="#groys2" class="btn btn--left"></a> <a href="#groys4" class="btn btn--right"></a> <img src="[URL='https://lumtu.com/yti/NQzzQNTBodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9waWNzdW0vODAwLADO']https://picsum.photos/seed/picsum/800/450[/URL]" alt="Скриншот вашего сайта"> </div> <div class="lightbox__slide" id="groys4"> <a href="#_" class="btn btn--close"></a> <a href="#groys3" class="btn btn--left"></a> <a href="#groys5" class="btn btn--right"></a> <img src="[URL='https://lumtu.com/yti/NQzzQNTBodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9waWNzdW0vODAwLADO']https://picsum.photos/seed/picsum/800/450[/URL]" alt="Скриншот вашего сайта"> </div> <div class="lightbox__slide" id="groys5"> <a href="#_" class="btn btn--close"></a> <a href="#groys4" class="btn btn--left"></a> <a href="#groys1" class="btn btn--right"></a> <img src="[URL='https://lumtu.com/yti/NQzzQNTBodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9waWNzdW0vODAwLADO']https://picsum.photos/seed/picsum/800/450[/URL]" alt="Скриншот вашего сайта"> </div> <div class="lightbox__bg"></div><!-- Close --> </div><!-- Close Lightbox -->
Код (CSS):