Create a Thumbnail Gallery with Slick Heading and Caption Effect with jQuery

Create a Thumbnail Gallery with Slick Heading and Caption Effect with jQuery


Create a Thumbnail Gallery with Slick Heading and Caption Effect with jQuery

Introduction

This is a simple jQuery tutorial, but can be extremely useful in frontend design. It's an elegant way to put more content in your website, but only display it when the user wants to see it. It keeps your website clean, but in the same time does not compromise your website content.

You can check out the demonstration and the code. :) enjoy.

1. HTML

It's simple, inside the container - photo class you have three objects, first div is the heading, image in the middle and last div is the caption. You can put links, rating whatever you like inside it.

<div class="photo">
	<div class="heading"><span>Pier</span></div>
	<img src="images/pier1.jpg" width="300" height="186" alt="" />
	<div class="caption"><span>Lorem de scua shemf huan rougt ecrit vato de souju kanasa.</span></div>
</div>

2. CSS

One thing you have to know about the CSS is, if you want to position objects within a container, the container must have relative position and the object must have absolute position too. In this case, photo class is the container, heading and caption classes are the objects with absolute position.

So, it's easy, by default, heading and caption classes are hidden with top (heading) set to -50px (the height of the heading) and same thing to caption, but instead of top, it's bottom.

I have shared this CSS tips in my 15+ CSS Tips and Tricks posts

	.photo {
		/* relative position, so that objects in it can be positioned inside this container */
		position:relative;
		font-family:arial;	
		
		/* hide those extra height that goes beyong the size of this container */
		overflow:hidden;
		border:5px solid #000;
		width:300px;
		height:186px;
	}	
	
		.photo .heading, .photo .caption {
			/* position inside the container */
			position:absolute;
			background:#000;
			height:50px;
			width:300px;
			
			/* transparency for different browsers */
			/* i have shared this in my CSS tips post too */
			opacity:0.6;
			filter:alpha(opacity=60);  
		     -moz-opacity:0.6;    
			-khtml-opacity: 0.6;  

		}
		
		.photo .heading { 
			
			/* hide it with negative value */
			/* it's the height of heading class */
			top:-50px;
		}

		.photo .caption { 		
			/* hide it with negative value */
			/* it's the height of bottom class */
			bottom:-50px;		
		}
		

		/* styling of the classes*/
		.photo .heading span {

			color:#26c3e5;	
			top:-50px;
			font-weight:bold;
			display:block;
			padding:5px 0 0 10px;
		}
		
		.photo .caption span{
			color:#999;	
			font-size:9px;
			display:block;
			padding:5px 10px 0 10px;
		}

3. Javascript

Javascript is pretty straight forward, just display the div and hide the div, the only difference between the heading and caption is, the css properties (top and bottom), I added the easing as well to give your more option in choosing the right transition for your image thumbnail gallery.

	
	$(document).ready(function () {

		// transition effect
		style = 'easeOutQuart';

		// if the mouse hover the image
		$('.photo').hover(
			function() {
				//display heading and caption
				$(this).children('div:first').stop(false,true).animate({top:0},{duration:200, easing: style});
				$(this).children('div:last').stop(false,true).animate({bottom:0},{duration:200, easing: style});
			},

			function() {
				//hide heading and caption
				$(this).children('div:first').stop(false,true).animate({top:-50},{duration:200, easing: style});
				$(this).children('div:last').stop(false,true).animate({bottom:-50},{duration:200, easing: style});
			}
		);

	});

Conclusion

This is a simple jQuery tutorial, but can be extremely useful in frontend design. It's an elegant way to put more content on your website, but only display it when the user want it. It keeps your website clean, but in the same time provide all the information to your visitors.

Last but not least, I need your support :) If you like this article, please help me to promote it by adding this post to your bookmark, subscribe to my RSS for more jQuery tutorial and design inspiration posts! AND also, you can BUY ME A DRINK (link in the footer) to motivate me and keep me awake! Thanks!

Author: Kevin Liew

Kevin Liew is a web designer and developer and keen on contributing to the web development industry. He loves frontend development and absolutely amazed by jQuery. Feel free to say hi to me, or follow @quenesswebblog on twitter.

Share the love

50 comments

Sergio Martos
Thu, 8th April 2010
Hi, thanks for the amazing tutorial… I really need one thing though: is possible add rounded corners in this tutorial? Thank you very much..! Reply
kevin Admin
Mon, 21st June 2010
@Sergio: you can use the css3 for the rounded border, or you have to make a rounded border images.

@Francesco: hey francesco, unfortunately, this isn't a slideshow, just an effect that you can apply to thumbnail :) Reply
Francesco
Mon, 21st June 2010
Very useful script! But what if I need to avoid the images' rewind? I'd like to see the first photo as a continuos slideshow.
Thanks for helping! Reply
tokat nakliyat
Wed, 18th August 2010
good code thanx Reply
Guerilla Grafix
Mon, 27th September 2010
Hey, Great Tutoria! Is there a way that I could incorporate this with HuddleTogehter's Light box scripts? I am new to jQuery and scripts, but your tuts have helped me come along way. However, I am stuck on incorporating the two scripts.
Thnx.
Nigel aka Ape Reply
Jim
Tue, 25th January 2011
Great script. Works in Firefox and IE 8. On the MAC I cant seem to get it to work on Safari and Chrome. Any ideas? Reply
Kevin Liew Admin
Wed, 26th January 2011
Hi Jim, I have tested in on Mac chrome and safari. In fact, this was built under mac environment. It works. Does the demo work for you? Reply
Hans
Fri, 11th February 2011
How can i make, that the hovering effect starts after one second? Only on hovering! Reply
Kevin Liew Admin
Fri, 11th February 2011
ThereseStewart
Sat, 24th December 2011
Every body acknowledges that men's life seems to be expensive, nevertheless different people need money for different things and not every man gets big sums cash. Thus to receive quick <a href="http://goodfinance-blog.com ">loan</a> or secured loan would be a correct way out. Reply
toprak
Mon, 20th February 2012
hi !!! how to make a bottom-up ? Reply
shakir
Mon, 26th March 2012
How can i make, the slider circular . Reply
Curtis
Mon, 16th April 2012
Great script. If the transition easing effect isn't working is it possible it's due to a conflicting script I am already using? Reply
Kevin Liew Admin
Tue, 8th May 2012
Did it show any error in the console? Reply

Leave a Comment

Please keep in mind that comments are moderated and rel="nofollow" is in use. You can use [code][/code] if you want to write codes. Don't spam us :) Thanks!

Advertisement