JSFiddle - React, Tailwind, and code Playground
HTML
<div class="container1 ">
<div class="curtain1">
<div class="ratio-keeper">
<div class="video-one"></div>
<div class="wrap embed-youtube ">
<div class="video embed-youtube " data-id="djV11Xbc914">
</div>
<button class="playa embed-youtube-play iframe" type="button" aria-label="Open"></button>
</div>
</div>
<div class="exit"></div>
</div>
</div>
<div class="container2 hide">
<div class="container3 ">
<div class="container ">
<div class="curtain">
<div class="ratio-keeper">
<div class="video-two"></div>
<div class=" embed-youtube">
<div class="video embed-youtube" data-id="djV11Xbc914">
</div>
<button class="playb embed-youtube-play" type="button" aria-label="Open"></button>
</div>
</div>
</div>
<div class="curtain">
<div class="ratio-keeper">
<div class="video-three"></div>
<div class=" embed-youtube">
<div class="video embed-youtube" data-id="djV11Xbc914">
</div>
<button class="playc embed-youtube-play" type="button" aria-label="Open"></button>
</div>
</div>
</div>
<div class="curtain">
<div class="ratio-keeper">
<div class="video-four"></div>
<div class="embed-youtube">
<div class="video embed-youtube" data-id="djV11Xbc914">
</div>
<button class="playd embed-youtube-play" type="button" aria-label="Open"></button>
</div>
</div>
</div>
<div class="curtain">
<div class="ratio-keeper">
<div class="video-five"></div>
<div class="embed-youtube">
<div class="video embed-youtube" data-id="djV11Xbc914">
</div>
<button class="playe embed-youtube-play" type="button" aria-label="Open"></button>
</div>
</div>
</div>
<div class="curtain">
<div class="ratio-keeper">
<div...
CSS
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
.container2 .container {
background:teal;
}
body {
background: #302b63;
}
.embed-youtube.active .embed-youtube-play {
display: none;
}
.container1 {
position: absolute;
left: 0;
right: 0;
min-height: 100%;
min-width: 255px;
display: flex;
padding: 8px 8px;
}
.curtain1 {
flex: 1 0 0;
margin: auto;
max-width: 640px;
border: 21px solid;
border-radius: 12px;
border-color: #000 #101010 #000 #101010;
position: relative;
}
.curtain1::before {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
background: radial-gradient(circle, transparent 0% 35%, #0a0a0a 35%);
border: 1px solid;
border-color: #000 #101010 #000 #101010;
;
}
.curtain1::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
outline: 1px solid #f91f6e;
pointer-events: none;
}
.curtain.slide::after {
outline: 1px solid #0059dd;
transition: outline 2s ease-in;
/* add this */
/*background-image: none;*/
}
.video-one {
position: absolute;
height: 100%;
width: 100%;
top: 0;
transition: all 8s ease-in 0s;
transition-delay: 300ms;
background:
linear-gradient(45deg,
#0000 7px,
rgb(113, 121, 126) 0 7.5px,
#0000 0 10px),
linear-gradient(-45deg,
#0000 7px,
rgb(113, 121, 126) 0 7.5px,
#0000 0 10px),
url(https://i.imgur.com/ig4UO7B.jpg);
background-position: 0 0, 0 0, 0 0;
background-size: 10px 10px, 10px 10px, cover;
background-repeat: repeat, repeat, no-repeat;
filter: drop-shadow(0 0 5px #000);
z-index: 1;
pointer-events:none;
}
.curtain1.slide .video-one {
/* transform: translateY(-100%);*/
animation: fadeOut 2s ease-in 700ms forwards;
}
@keyframes fadeOut {
to {
opacity: 0;
}
}
.container {
position: absolute;
left: 0;
right: 0;
min-height: 100%;
padding: 8px 8px;
}
.curtain {
margin: auto auto 20px;
max-width:...
JavaScript
const manageCover = (function makeManageCover() {
const config = {};
const body = document.body;
let currentPlayButton = {};
function show(el) {
el.classList.remove("hide");
}
function hide(el) {
el.classList.add("hide");
}
function showCover(playButton) {
const cover = playButton.parentElement;
cover.classList.add("active");
}
function openCurtain(curtain) {
curtain.classList.add("slide");
}
function coverClickHandler(evt) {
const cover = evt.currentTarget;
showCover(cover);
const curtain = evt.currentTarget.parentElement.parentElement.parentElement;
openCurtain(curtain);
}
const covers = document.querySelectorAll(".embed-youtube-play");
covers.forEach(function addHandler(cover) {
cover.addEventListener("click", coverClickHandler);
});
function addClickToButtons(playButtons) {
playButtons.forEach(function playButtonHandler(playButton) {
playButton.addEventListener("click", coverClickHandler);
});
}
function addCoverHandler(coverSelector, handler) {
const cover = document.querySelector(coverSelector);
cover.addEventListener("click", handler);
}
function init(selectors) {
config.containers = document.querySelectorAll(selectors.container);
const playButtons = document.querySelectorAll(selectors.playButton);
addClickToButtons(playButtons);
}
// function init( /*selectors*/) {
//config.containers = document.querySelector(selectors.container);
//const allContainers = document.querySelector(".container");
//const playButtons = document.querySelector(selectors.playButton);
//const allPlaybuttons = document.querySelector(".embed-youtube-play");
// addClickToButtons( /*allPlaybuttons*/);
// }
return {
addCoverHandler,
init
};
}());
const manageUI = (function makeManageUI() {
//const config = {};
function show(el) {
el.classList.remove("hide");
...