Register now or login here to start promoting your blog and your favourite articles.
Create a Thumbnail Gallery with Slick Heading and Caption Effect with jQuery
5 Aug 2009 - 40 Comments
This tutorial will show how to add heading and caption to your thumbnail and display it with jQuery cool transition effect. It's an elegant way to put content in your website, and only display it when users want to see it. It keeps your website clean!
Author: kevin | Source: queness
Demonstration Download

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!

Demonstration Download

Copyright & Usage

The effects and techniques demonstrated in tutorials on Queness can be used in whatever manner you wish without attribution. You cannot copy whole tutorials (unless permission is given), either in English or translated to another language.

Share This Post to Support Me! :)


Comments

tokat nakliyat on 18 Aug 2010 says:
good code thanx
kevin on 21 Jun 2010 says:
@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 :)
Francesco on 21 Jun 2010 says:
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!
Sergio Martos on 8 Apr 2010 says:
Hi, thanks for the amazing tutorial… I really need one thing though: is possible add rounded corners in this tutorial? Thank you very much..!
daniel on 30 Mar 2010 says:
I have noticed that IE8 doesn't suport transparency on mouse hover like firefox..
to bad realy... any way I'm using it for my portfolio :) realy cool!
pratham dutta on 28 Mar 2010 says:
Hi I am web designer can anyone send me a javascript image slider tutorials with next previous buttons

http://www.scrapsforever.com
daniel on 26 Mar 2010 says:
wery cool cant wait to use it
kevin on 21 Mar 2010 says:
Hi Liam, I don't get what you mean. It's not a slideshow and it doesn't have next/previous buttons.
Liam on 19 Mar 2010 says:
Love it. I really need one thing though - is there a way to reset the timer back to 5 seconds (or whatever it's set as) when you click on a next/previous button? Currently it is a bit annoying to browse through the slides, as every 5 seconds it skips forward regardless.
lin on 9 Feb 2010 says:
very good effect.
i like very much.


Leave a comment

Subscribe RSS Subscribe RSS, Keep yourself updated with queness latest posts!
Pixel Crayons

Buy wholesale computers directly from China at DHgate.com

Discover the tools to build your e-Commerce Site with Netfirms

Buy China Products from Made-in-China.com

Cocktail Dresses

SmartPhone Cell Phone

Wholesale electronics

Web Hosting Rating

Buy WOW Gold

Get your cdl today

Debt collector review

  •  
  •  
  •  
  •  
  •  

Community News

Recent Comments

Random Posts


View all posts and news Back to top

About the Author

A web designer and developer who is passionate and keen on contributing to the web development industry. Feel free to say hi to me, or follow me on twitter.

Kevin Liew