Image gallery
by Sajan Miah
HTML
<div id="overlay"></div>
<div id="container">
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-1.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-2.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-3.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-4.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-5.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-6.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-1.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-2.jpg" alt="" class="photo-image" />
<div class="desc rightslide">Bdjfjffjkfjgjfgjfgjfgjfgjfjkg</div>
</div>
</div>
<div class="imagepluscontainer">
<div class="photo"><img src="http://s.cdpn.io/37045/wedding-3.jpg" alt="" class="photo-image"...
CSS
#container {
width: 850px;
position: relative;
margin: 0 auto;
top: 50px;
}
#overlay {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: #000;
opacity: .7;
z-index: 2000;
display: none;
}
.photo {
position: relative;
float: left;
height: 100px;
width: 100px;
}
.photo-image {
cursor: pointer;
position: relative;
top: 1px;
left: 1px;
width: 100px;
border: 1px solid #999;
z-index: 1000;
opacity: 0.6;
transition: width 1s, top 1s, left 1s, opacity 1s, z-index .01s;
}
.photo-image:hover {
width: 200px;
top: -50px;
left: -50px;
z-index: 1001;
opacity: 1;
}
.photo-selected {
cursor: default;
z-index: 2001;
width: 500px;
opacity: 1;
top: -20px;
left: -200px;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
}
.photo-selected:hover {
width: 500px;
top: -50px;
left: -50px;
z-index: 2001;
opacity: 1;
top: -20px;
left: -200px;
}
.imagepluscontainer div.desc {
/* CSS for desc div of each image. */
position: absolute;
width: 90%;
z-index: 1;
/* Set z-index to that less than image's, so it's hidden beneath it */
bottom: 0;
/* Default position of desc div is bottom of container, setting it up to slide down */
left: 5px;
padding: 8px;
background: rgba(0, 0, 0, 0.8);
/* black bg with 80% opacity */
color: white;
-moz-border-radius: 0 0 8px 8px;
/* CSS3 rounded borders */
-webkit-border-radius: 0 0 8px 8px;
border-radius: 0 0 8px 8px;
opacity: 0;
/* Set initial opacity to 0 */
-moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.8);
/* CSS3 shadows */
-webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.8);
box-shadow: 0 0 6px rgba(0, 0, 0, 0.8);
-moz-transition: all 0.5s ease 0.5s;
/* Enable CSS3 transition on desc div. Final 0.5s value is the delay before animation starts */
-webkit-transition: all 0.5s ease 0.5s;
-o-transition: all 0.5s ease 0.5s;
-ms-transition: all 0.5s ease 0.5s;
transition: all 0.5s ease...
JavaScript
$(function() {
// View the selected photo at full size
$(".photo-image").click(function() {
$(this).addClass("photo-selected");
$(this).parent().addClass("photo-x");
$("#overlay").show();
});
// Close the full size view when #overlay is clicked
$("#overlay").click(function() {
$(".photo-image").removeClass("photo-selected");
$(".photo-x").removeClass("photo-x");
$("#overlay").hide();
});
});
// Close full size view if "esc"
$(document).keyup(function(e) {
if (e.keyCode == 27) {
$(".photo-image").removeClass("photo-selected");
$("#overlay").hide();
}
});