I want to place the loader centered on the curtain.
Next, I want the loader to fade out to opacity 0 after it is done.
Next, then the curtain goes up.
That should occur for those 3 videos.
Here is my video code:
https://jsfiddle.net/t0av79u8/
Here is the loader:
https://jsfiddle.net/gpuyaesn/3/
From here: https://css-loaders.com/progress/
The loader is in the css here: https://jsfiddle.net/amoLtq0c/
I don’t know where I am placing it in the html:
<div class="loader"></div>
<div class="outer-containerA">
<div class="video-containerA">
<button class="exitA" type="button" title="Exit" aria-label="Exit"></button>
<div class="ratio-keeper">
<div class="video playA"></div>
<div class="curtain"></div>
</div>
<div class="playA"></div>
</div>
<div class="video-containerB hide">
<button class="exitB" type="button" title="Exit" aria-label="Exit"></button>
<div class="ratio-keeper">
<div class="video playB"></div>
<div class="curtain"></div>
</div>
<div class="playB"></div>
</div>
<div class="video-containerC hide">
<button class="exitC" type="button" title="Exit" aria-label="Exit"></button>
<div class="ratio-keeper">
<div class="video playC"></div>
<div class="curtain"></div>
</div>
<div class="playC"></div>
</div>
</div>
css
.outer-containerA {
background: #15202b;
}
.outer-containerA,
.outer-containerB,
.modal {
display: flex;
position: fixed;
inset: 0;
overflow: auto;
/* Enable scroll if needed */
}
.video-containerA,
.video-containerB,
.video-containerC {
flex: 1 0 0;
margin: auto;
max-width: 640px;
position: relative;
}
.ratio-keeper {
height: 0;
padding-top: 56.25%;
overflow: hidden;
position: relative;
background: #000;
}
.ratio-keeper iframe {
/*position: absolute;
top: 0;
left: 0;*/
width: 100%;
height: 100%;
}
.ratio-keeper iframe,
.curtain {
position: absolute;
inset: 0;
}
.curtain {
/*position: absolute;
height: 100%;
width: 100%;
inset:0;*/
--wide: 8.8%;
--angle1: 0;
--angle2: -90;
background: repeating-linear-gradient(calc(var(--angle1) * 1deg),
#ffffff00 0,
#ffffff00 var(--wide),
#ffffff1a calc(var(--wide) + 1px),
#0000004d calc(var(--wide) + 2px),
#ffffff00 calc(var(--wide) + 5px)),
repeating-linear-gradient(calc(calc(var(--angle2) + 90) * 1deg),
#ffffff00 0,
#ffffff00 var(--wide),
#ffffff1a calc(var(--wide) + 1px),
#0000004d calc(var(--wide) + 2px),
#ffffff00 calc(var(--wide) + 5px));
background-color: #222;
border-bottom: 2px solid #191919;
background-repeat: no-repeat;
overflow: hidden;
}
.video-containerA.slide .curtain {
transition: 8s ease-in-out;
transition-delay: 2.2s;
transform: translateY(-100%);
}
@keyframes slide {
to {
transform: translateY(-100%);
}
}
.video-containerB.slide .curtain,
.video-containerC.slide .curtain {
animation: slide 8s ease-in-out forwards;
animation-delay: 2.2s;
}
css loader:
.loader {
width: 60px;
aspect-ratio: 1;
border-radius: 50%;
-webkit-mask: linear-gradient(0deg, #000 55%, #0000 0) bottom/100% 18.18%;
background:
linear-gradient(#f03355 0 0) bottom/100% 0% no-repeat #ddd;
animation: l8 3s steps(7);
}
@keyframes l8 {
100% {
background-size: 100% 115%;
}
}