JSFiddle - React, Tailwind, and code Playground
HTML
<div class="container1 ">
<div class="curtain1">
<div class="ratio-keeper">
<div class="wrap embed-youtube ">
<div class="video embed-youtube " data-id="djV11Xbc914">
</div>
<button class="playa " type="button" aria-label="Open"></button>
</div>
</div>
<div class="exit"></div>
</div>
</div>
<div class="container2 hide">
<div class="container ">
<div class="header hide">
<div class="ratio-keeper2"></div>
</div>
<div class="curtain">
<div class="ratio-keeper">
<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=" 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="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="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 class="embed-youtube">
<div class="video embed-youtube" data-id="djV11Xbc914">
</div>
<button class="playf embed-youtube-play" type="button"...
CSS
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
body {
background: #302b63;
}
.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;
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;
}
.container {
position: absolute;
left: 0;
right: 0;
min-height: 100%;
padding: 8px 8px;
}
.curtain {
margin: auto auto 20px;
max-width: 640px;
border: 21px solid;
border-radius: 12px;
border-color: #000 #101010 #000 #101010;
position: relative;
}
@media screen and (max-width: 500px) { .curtain { margin-bottom: 10px; } }
.curtain::before {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
background: #0a0a0a;
border: 1px solid;
border-color: #000 #101010 #000 #101010;
}
.curtain::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
outline: 1px solid #333;
pointer-events: none;
}
.ratio-keeper {
position: relative;
height: 0;
padding-top: 56.25%;
margin: auto;
overflow: hidden;
}
/*.embed-youtube img,*/
.embed-youtube iframe,
.embed-youtube .embed-youtube-play,
.embed-youtube .embed-youtube-play:before {
position: absolute;
}
.embed-youtube iframe {
height: 100%;
width: 100%;
top: 0;
left: 0;
/*animation: fadein 3s ease-in 0s forwards;*/
}
.embed-youtube .embed-youtube-play {
-webkit-appearance: none;
appearance: none;
position: absolute;
top: 0;
left: 0;
bottom: 0;
...
JavaScript
(function manageCover1() {
function show(el) {
el.classList.remove("hide");
}
function hide(el) {
el.classList.add("hide");
}
function coverClickHandler() {
//const cover = evt.currentTarget;
const cover = document.querySelector(".container1");
hide(cover);
const thewrap = document.querySelector(".container2");
show(thewrap);
}
const cover = document.querySelector(".exit");
cover.addEventListener("click", coverClickHandler);
}());
const manageCover = (function makeManageCover() {
function addCoverHandler(coverSelector, handler) {
const cover = document.querySelector(coverSelector);
//cover.addEventListener("click", handler);
handler();
}
return {
addCoverHandler
};
}());
const videoPlayer = (function makeVideoPlayer() {
let player;
const tag = document.createElement("script");
tag.src = "https://www.youtube.com/player_api";
const firstScriptTag = document.getElementsByTagName("script")[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function shufflePlaylist(player) {
player.setShuffle(true);
player.playVideoAt(0);
//player.stopVideo();
}
function onPlayerReady(event) {
player = event.target;
player.setVolume(100);
//shufflePlaylist(player);
}
function onPlayerStateChange(event) {
const player = event.target;
return player;
}
function addPlayer(video, playerOptions) {
playerOptions.videoId = playerOptions.videoId || video.dataset.id;
playerOptions.events = playerOptions.events || {};
playerOptions.events.onReady = onPlayerReady;
playerOptions.events.onStateChange = onPlayerStateChange;
const player = new YT.Player(video, playerOptions);
return player;
}
return {
addPlayer
};
}());
const managePlayer = (function makeManagePlayer() {
const playerVars = {
autoplay: 0,
controls: 1,
disablekb: 1,
// enablejsapi: 1,
//loop: 1,
//playlist: 1,
fs:...