This code snippet helps you to create a video library lightbox using javascript.
How to Create JavaScript Video Library Lightbox
First of all, load the following assets into the head tag of your HTML document.
<link href="https://fonts.googleapis.com/css?family=Overpass:100,300,700" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Montserrat:100,300,400,400i,700" rel="stylesheet"> <script src="https://use.fontawesome.com/88a44a09b2.js"></script><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css"> <link rel='stylesheet' href='https://cdn.rawgit.com/dimsemenov/Magnific-Popup/master/dist/magnific-popup.css'>
Create the HTML structure for the video library as follows:
<div class="content">
<h1 class="section-header">Video Gallery</h1>
<div class="section-header-underline"></div>
<div class="video-gallery">
<div class="gallery-item">
<img src="https://i.pinimg.com/originals/75/f9/97/75f997ee6acf59dc51bbea05eae36677.jpg" alt="North Cascades National Park" />
<div class="gallery-item-caption">
<div>
<h2>North Cascades</h2>
<p>The mountains are calling</p>
</div>
<a class="vimeo-popup" href="https://www.youtube.com/embed/-_pT-tO9LJc"></a>
</div>
</div>
<div class="gallery-item ">
<img src="https://cdn.davemorrowphotography.com/wp-content/uploads/2016/08/Mount-Rainier-Star-Photography-Workshops-and-Tours-Header-900x394.jpg" alt="Mt. Rainier" />
<div class="gallery-item-caption">
<div>
<h2>Mt. Rainier</h2>
<p>14410 feet of adventure</p>
</div>
<a class="vimeo-popup" href="https://www.youtube.com/embed/-_pT-tO9LJc"></a>
</div>
</div>
<div class="gallery-item">
<img src="https://wqtcq1f34a8kduuv3sc0e76o-wpengine.netdna-ssl.com/wp-content/uploads/2018/06/12394537_web1_180620-pdn-goat-web.jpg" alt="Olympic National Park" />
<div class="gallery-item-caption">
<div>
<h2>Olympic National Park</h2>
<p>Mountains, rain forests, wild coastlines</p>
</div>
<a class="vimeo-popup" href="https://youtu.be/-_pT-tO9LJc"></a>
</div>
</div>
<div class="gallery-item">
<img src="https://upload.wikimedia.org/wikipedia/commons/d/dc/MSH82_st_helens_plume_from_harrys_ridge_05-19-82.jpg" alt="Mount St. Helens" />
<div class="gallery-item-caption">
<div>
<h2>Mount St. Helens</h2>
<p>The one and only</p>
</div>
<a class="vimeo-popup" href="https://vimeo.com/171540296"></a>
</div>
</div>
</div>
</div>
Now, style the video library using the following CSS styles:
body {
font-family: 'Overpass', sans-serif;
}
.section-header {
text-align: center;
margin: 60px auto 20px auto;
font-family: 'Montserrat', sans-serif;
font-size: 36px;
font-weight: 400;
text-transform: uppercase;
color: #222;
}
.section-header-underline {
border: 1px solid #222;
width: 3rem;
margin: 0 auto;
margin-bottom: 30px;
}
.video-gallery {
position: relative;
margin: 0 auto;
max-width: 1000px;
text-align: center;
}
.video-gallery .gallery-item {
position: relative;
float: left;
overflow: hidden;
margin: 10px 1%;
min-width: 320px;
max-width: 580px;
max-height: 360px;
width: 48%;
background: #000;
cursor: pointer;
}
.video-gallery .gallery-item img {
position: relative;
display: block;
opacity: .45;
width: 105%;
height: 300px;
transition: opacity 0.35s, transform 0.35s;
transform: translate3d(-23px, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.video-gallery .gallery-item .gallery-item-caption {
padding: 2em;
color: #fff;
text-transform: uppercase;
font-size: 1.25em;
}
.video-gallery .gallery-item .gallery-item-caption,
.video-gallery .gallery-item .gallery-item-caption > a {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.video-gallery .gallery-item h2 {
font-weight: 300;
overflow: hidden;
padding: 0.5em 0;
}
.video-gallery .gallery-item h2,
.video-gallery .gallery-item p {
position: relative;
margin: 0;
z-index: 10;
}
.video-gallery .gallery-item p {
letter-spacing: 1px;
font-size: 68%;
padding: 1em 0;
opacity: 0;
transition: opacity 0.35s, transform 0.35s;
transform: translate3d(10%, 0, 0);
}
.video-gallery .gallery-item:hover img {
opacity: .3;
transform: translate3d(0, 0, 0);
}
.video-gallery .gallery-item .gallery-item-caption {
text-align: left;
}
.video-gallery .gallery-item h2::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 15%;
height: 1px;
background: #fff;
transition: transform 0.3s;
transform: translate3d(-100%, 0, 0);
}
.video-gallery .gallery-item:hover h2::after {
transform: translate3d(0, 0, 0);
}
.video-gallery .gallery-item:hover p {
opacity: 1;
transform: translate3d(0, 0, 0);
}
@media screen and (max-width: 50em) {
.video-gallery .gallery-item {
display: inline-block;
float: none;
margin: 10px auto;
width: 100%;
}
}
Load the following scripts before closing the body tag:
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js'></script> <script src='https://cdn.rawgit.com/dimsemenov/Magnific-Popup/master/dist/jquery.magnific-popup.js'></script>
Finally, add the following JavaScript function for its functionality:
$(document).ready(function() {
$('.video-gallery').magnificPopup({
delegate: 'a',
type: 'iframe',
gallery:{
enabled:true
}
});
});
That’s all! hopefully, you have successfully created JavaScript video library lightbox. If you have any questions or suggestions, feel free to comment below.
