<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Devirtuoso &#187; CSS</title>
	<atom:link href="http://www.devirtuoso.com/category/front-end-development/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devirtuoso.com</link>
	<description>Web Development Wickedness</description>
	<lastBuildDate>Sat, 20 Mar 2010 16:35:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Quick Way to Use Page Scrolling to Reveal an Image</title>
		<link>http://www.devirtuoso.com/2009/08/a-quick-way-to-use-page-scrolling-to-reveal-an-image/</link>
		<comments>http://www.devirtuoso.com/2009/08/a-quick-way-to-use-page-scrolling-to-reveal-an-image/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:33:46 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=886</guid>
		<description><![CDATA[From time to time you may see a website that reveals some image in the background when the user scrolls.  More times than not it displays advertising.  We’re going to create a super quick and easy web page that reveals an image as the user scrolls down.

What We Are Building
Here is a look at what [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time you may see a website that reveals some image in the background when the user scrolls.  More times than not it displays advertising.  We’re going to create a super quick and easy web page that reveals an image as the user scrolls down.</p>
<p><span id="more-886"></span></p>
<h2>What We Are Building</h2>
<p>Here is a look at what we’ll be building.  Not too fancy but it gets the job done.  It gives your site a nice little Easter egg for you users to find when surfing.</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/Scroll-Reveal/example.zip" target="_blank">Download</a><a class="Example" href="http://www.devirtuoso.com/Examples/Scroll-Reveal/" target="_blank">Example</a></div>
<p><a class="Example" href="http://www.devirtuoso.com/Examples/Scroll-Reveal/" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image19.png" border="0" alt="image" width="424" height="353" /></a></p>
<h2>Getting Started</h2>
<p>The first thing we’re going to have to do is image work.  Decide which image you want to reveal.  I just found a picture of a cat on the internet.  Second of all you’re going to have to create a fairly large image that goes from your background color to transparent.  It needs to be large enough to cover even your largest browser.  I made mine about 2000px square with a little texture in the gradation.  Once you have that made, simply save it as a transparent PNG and your ready to go.  The idea here is that the transparent PNG is going to sit on top of your hidden image.  Your PNG is going to scroll up,  but your hidden image is going to stay in place.  Kind of like the curtains at a theatre.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image20.png" border="0" alt="image" width="429" height="496" /></p>
<h2>The Code</h2>
<p>There is not much to this.  There is a single div wrapper which will have the PNG overlay as it’s background, and the body will have the hidden image as it’s background.  In this tutorial I also added some text and an arrow just to show that it is scrolling.</p>
<p>Just a couple of notes.  For this to work in IE6 your going to have to find a PNG transparency fix.  There are 10 million out there, just pick one.  I used the <a title="jquery pngfix plugin" href="http://jquery.andreaseberhard.de/pngFix/" target="_blank">jQuery pngFix plugin</a>. Also be sure to get rid of any margin padding on the body.  You’re PNG overlay won’t go to the edges if you have this margin in place.</p>
<p>Here is the Code:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Page Title<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; /* Get rid of any margins*/<br />
&nbsp; &nbsp; *{<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; padding:0px;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; /* Give the body your hidden image as the background<br />
&nbsp; &nbsp; and maked sure it is FIXED*/<br />
&nbsp; &nbsp; body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; background: #000 url(1Fail.jpg) no-repeat fixed 50% bottom;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; /*Give the wrapper your overlay image as the background <br />
&nbsp; &nbsp; and make sure it SCROLLS*/<br />
&nbsp; &nbsp; #wrapper{<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; /* Just making sure you can scroll...probably will not need<br />
&nbsp; &nbsp; &nbsp; &nbsp; this if you have enough content */<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:2000px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; background: transparent url(overlay.png) no-repeat scroll left top;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; color:white;<br />
&nbsp; &nbsp; &nbsp; &nbsp; font-family: &nbsp;Arial, &quot;MS Trebuchet&quot;, sans-serif;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; /* Centering and styling text/image within the wrapper */<br />
&nbsp; &nbsp; #wrapper h1, #wrapper img{<br />
&nbsp; &nbsp; &nbsp; &nbsp; text-align:center;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:700px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0 auto;<br />
&nbsp; &nbsp; &nbsp; &nbsp; padding:100px 0px 0px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; display:block;<br />
&nbsp; &nbsp; }<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<br />
<span class="sc-1">&lt;!-- PNG FIX - NEEDED FOR IE6 &nbsp;--&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;jquery.pngFix.pack.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;</span> <br />
&nbsp; &nbsp; $(document).ready(function(){ <br />
&nbsp; &nbsp; &nbsp; &nbsp; $(document).pngFix(); <br />
&nbsp; &nbsp; }); <br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span> <br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;wrapper&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Regular Content --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span>Scroll Down to see the hidden image.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;arrow.gif&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>That’s all there is too it.  Nice and quick for a pretty cool effect.  Enjoy.</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/Scroll-Reveal/example.zip" target="_blank">Download</a><a class="Example" href="http://www.devirtuoso.com/Examples/Scroll-Reveal/" target="_blank">Example</a></div>
<p>&#160;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/08/a-quick-way-to-use-page-scrolling-to-reveal-an-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Animated Wave</title>
		<link>http://www.devirtuoso.com/2009/08/jquery-animated-wave/</link>
		<comments>http://www.devirtuoso.com/2009/08/jquery-animated-wave/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 16:22:26 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=873</guid>
		<description><![CDATA[The post  How to Create a 3D Tag Cloud in jQuery showed how to create a carousel like tag cloud that interacted with the users mouse.  While playing around with the code, I’ve stumbled upon a cool effect by changing one line of code.

The new effect is a wave like effect.  I don’t know how [...]]]></description>
			<content:encoded><![CDATA[<p>The post  <a href="http://www.devirtuoso.com/2009/08/how-to-create-a-3d-tag-cloud-in-jquery/">How to Create a 3D Tag Cloud in jQuery</a> showed how to create a carousel like tag cloud that interacted with the users mouse.  While playing around with the code, I’ve stumbled upon a cool effect by changing one line of code.</p>
<p><span id="more-873"></span><br />
The new effect is a wave like effect.  I don’t know how useful the effect is, but it looks pretty cool, and that’s good enough for me. <img src='http://www.devirtuoso.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Have a look: <a title="jQuery Wave" href="http://www.devirtuoso.com/Examples/3D-jQuery/index2.html" target="_blank">Example</a></p>
<p><a title="jQuery Wave" href="http://www.devirtuoso.com/Examples/3D-jQuery/index2.html" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image18.png" border="0" alt="image" width="460" height="460" /></a></p>
<p>In the previous CSS the anchor tags had a position of absolute so the jQuery could position the anchor tags properly.  If we switch the position to relative, the jQuery can’t move the anchors freely and it creates a wave affect…kinda cool.</p>
<p><a title="3d jquery" href="http://www.devirtuoso.com/Examples/3D-jQuery/example.zip">Download the original 3D jQuery tutorial file </a></p>
<p>Here is the new CSS:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace">body<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">font-family</span><span class="sy0">:</span> Arial<span class="sy0">,</span> <span class="st0">&quot;MS Trebuchet&quot;</span><span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#111</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<br />
<span class="re0">#list</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/*Influences layout of list*/</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">600px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">600px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#000</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/* Keeps list inside of wrapper*/</span><br />
&nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span><span class="kw2">relative</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span> <span class="kw2">auto</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">overflow</span><span class="sy0">:</span><span class="kw2">hidden</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<br />
<span class="re0">#list</span> ul<span class="sy0">,</span><br />
<span class="re0">#list</span> li<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* We just changed the position to relative <br />
instead of absolute */</span><br />
<span class="re0">#list</span> a<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span><span class="kw2">relative</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#666</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#list</span> a<span class="re2">:hover</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#ccc</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<p>Here is the new coplete code:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>jQuery 3D<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; font-family: Arial, &quot;MS Trebuchet&quot;, sans-serif;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color: #111;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list{<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0 auto;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:600px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:600px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; overflow:hidden;<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:relative;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color: #000;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list ul,<br />
&nbsp; &nbsp; #list li{<br />
&nbsp; &nbsp; &nbsp; &nbsp; list-style:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; padding:0;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list a{<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:relative;<br />
&nbsp; &nbsp; &nbsp; &nbsp; text-decoration: none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; color:#666;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list a:hover{<br />
&nbsp; &nbsp; &nbsp; &nbsp; color:#ccc;<br />
&nbsp; &nbsp; }<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;list&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>ajax<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>css<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>design<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>firefox<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>flash<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>html<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Devirtuoso<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>jquery<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>PHP<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SEO<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>usability<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>www<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>web<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>xhtml<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;</span><br />
<br />
<br />
$(document).ready(function(){<br />
&nbsp; &nbsp; <br />
var element = $('#list a');<br />
var offset = 0; <br />
var stepping = 0.03;<br />
var list = $('#list');<br />
var $list = $(list)<br />
<br />
$list.mousemove(function(e){<br />
&nbsp; &nbsp; var topOfList = $list.eq(0).offset().top<br />
&nbsp; &nbsp; var listHeight = $list.height()<br />
&nbsp; &nbsp; stepping = (e.clientY - topOfList) / &nbsp;listHeight * 0.2 - 0.1;<br />
&nbsp; &nbsp; <br />
});<br />
<br />
<br />
for (var i = element.length - 1; i &gt;= 0; i--)<br />
{<br />
&nbsp; &nbsp; element[i].elemAngle = i * Math.PI * 2 / element.length;<br />
}<br />
<br />
<br />
setInterval(render, 20);<br />
<br />
<br />
function render(){<br />
&nbsp; &nbsp; for (var i = element.length - 1; i &gt;= 0; i--){<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; var angle = element[i].elemAngle + offset;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; x = 120 + Math.sin(angle) * 30;<br />
&nbsp; &nbsp; &nbsp; &nbsp; y = 45 + Math.cos(angle) * 40;<br />
&nbsp; &nbsp; &nbsp; &nbsp; size = Math.round(40 - Math.sin(angle) * 40);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; var elementCenter = $(element[i]).width() / 2;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; var leftValue = (($list.width()/2) * x / 100 - elementCenter) + &quot;px&quot;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;fontSize&quot;, size + &quot;pt&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;opacity&quot;,size/100);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;zIndex&quot; ,size);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;left&quot; ,leftValue);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;top&quot;, y + &quot;%&quot;);<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; offset += stepping;<br />
}<br />
<br />
&nbsp; &nbsp; <br />
});<br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>I always love happy mistakes, I encourage you to play around with the code and see if you can’t come up with your own cool effects.</p>
<p>&#160;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/08/jquery-animated-wave/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How to Create a 3D Tag Cloud in jQuery</title>
		<link>http://www.devirtuoso.com/2009/08/how-to-create-a-3d-tag-cloud-in-jquery/</link>
		<comments>http://www.devirtuoso.com/2009/08/how-to-create-a-3d-tag-cloud-in-jquery/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 01:53:24 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=829</guid>
		<description><![CDATA[With browsers rendering JavaScript faster than ever before, it’s a great opportunity to get creative with jQuery.&#160; This tutorial will show how to create a scrolling 3D tag cloud…it’s not as difficult as you might think.

&#160;
3D Tag Clouds..Oh My
What exactly will we be building?&#160; It’s somewhat like a carousel, but we’re going to have the [...]]]></description>
			<content:encoded><![CDATA[<p>With browsers rendering JavaScript faster than ever before, it’s a great opportunity to get creative with <strong>jQuery</strong>.&#160; This tutorial will show how to create <strong>a scrolling 3D tag cloud</strong>…it’s not as difficult as you might think.</p>
<p><span id="more-829"></span></p>
<p>&#160;</p>
<h3>3D Tag Clouds..Oh My</h3>
<p>What exactly will we be building?&#160; It’s somewhat like a carousel, but we’re going to have the take fade off into the distance like the lone ranger at the end of cheesy “B” western flick….very dramatic.&#160; </p>
<p>We’re also going to have our tag cloud interact with the users mouse.&#160; The further the mouse is away from the center, the faster it will rotate.</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/3D-jQuery/example.zip" target="_blank">Download</a><a class="Example" href="http://www.devirtuoso.com/Examples/3D-jQuery/" target="_blank">Example</a></div>
<p> <a href="http://http://www.devirtuoso.com/Examples/3D-jQuery/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3d tag cloud" border="0" alt="3d tag cloud" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image4.png" width="305" height="305" /></a></p>
<p>&#160;</p>
<h3>Simple HTML</h3>
<p>As the sub title suggests the HTML is painfully simple.&#160; Most of the complicated stuff is in the jQuery.&#160; All we’ll need is a list of anchor tags wrapped in a div.&#160; Told you it was simple,&#160; here is the <strong>HTML</strong>.</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>jQuery 3D<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;list&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>ajax<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>css<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>design<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>firefox<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>flash<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>html<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Devirtuoso<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>jquery<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>PHP<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SEO<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>usability<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>www<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>web<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>xhtml<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span>&nbsp; <br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>Styling the List</h3>
<p>For the most part the CSS is just to make the links pretty.&#160; There are a couple of things that need to happen though.&#160; The anchor links need to have a position: absolute.&#160; This way the jQuery can give it x and y co-ordinates and the links will obey.&#160; Also we need to give a height and width of the div wrapper.&#160; The jQuery reference the dimensions of the wrapper to help layout the links.&#160; It might also be a good idea to give the wrapper a position:relative to keep the links inside the wrapper, this isn’t necessary though. </p>
<p>Here is the <strong>CSS</strong>:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/* Set font and background for body*/</span> &nbsp; <br />
body<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">font-family</span><span class="sy0">:</span> Arial<span class="sy0">,</span> <span class="st0">&quot;MS Trebuchet&quot;</span><span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#111</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Styles the div wrapper<br />
the important part is the<br />
width and the height */</span><br />
<span class="re0">#list</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/*Influences layout of list*/</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">600px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">600px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#000</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/* Keeps list inside of wrapper*/</span><br />
&nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span><span class="kw2">relative</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span> <span class="kw2">auto</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">overflow</span><span class="sy0">:</span><span class="kw2">hidden</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Reset the list*/</span><br />
<span class="re0">#list</span> ul<span class="sy0">,</span><br />
<span class="re0">#list</span> li<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* List requires an absolute position<br />
so jQuery can move the items around<br />
freely */</span><br />
<span class="re0">#list</span> a<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span><span class="kw2">absolute</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#666</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#list</span> a<span class="re2">:hover</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#ccc</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>The Fun Part (jQuery)</h3>
<p>Now comes the trigonometry….see…your high school teacher was right, you will use this stuff in the real world.&#160; It really isn’t that bad though…3 lines of trigonometry is more than acceptable. I’m not going to go into great detail with the math.&#160; If you want to learn more about the math behind the 3D I recommend reading <a title="Scripting 3D in Flash" href="http://www.kirupa.com/developer/actionscript/3dexplore.htm" target="_blank">Kirupa.com tutorial on it</a>. The tutorial is for flash, but you will get the gist of how it works.</p>
<p>Here is the <strong>jQuery</strong>:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
<span class="co1">//Setup variables</span><br />
<span class="kw2">var</span> element <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">'#list a'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// all the list elements</span><br />
<span class="kw2">var</span> offset <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// angle offset for animation</span><br />
<span class="kw2">var</span> stepping <span class="sy0">=</span> <span class="nu0">0.03</span><span class="sy0">;</span>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// how fast the list rotates</span><br />
<span class="kw2">var</span> list <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">'#list'</span><span class="br0">&#41;</span><span class="sy0">;</span>&nbsp; &nbsp; &nbsp; <span class="co1">// the list wrapper</span><br />
<span class="kw2">var</span> $list <span class="sy0">=</span> $<span class="br0">&#40;</span>list<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="coMULTI">/* Handles mouse movement, the closer to the center<br />
the faster the list will rotate */</span><br />
$list.<span class="me1">mousemove</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw2">var</span> topOfList <span class="sy0">=</span> $list.<span class="me1">eq</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>.<span class="me1">offset</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">top</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> listHeight <span class="sy0">=</span> $list.<span class="me1">height</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Sets variable that controls the speed of rotation.</span><br />
&nbsp; &nbsp; stepping <span class="sy0">=</span> <span class="br0">&#40;</span>e.<span class="me1">clientY</span> <span class="sy0">-</span> topOfList<span class="br0">&#41;</span> <span class="sy0">/</span> &nbsp;listHeight <span class="sy0">*</span> <span class="nu0">0.2</span> <span class="sy0">-</span> <span class="nu0">0.1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<br />
<span class="co2">/* Disperse elements evenly around the circle */</span><br />
<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i <span class="sy0">=</span> element.<span class="me1">length</span> <span class="sy0">-</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&gt;=</span> <span class="nu0">0</span><span class="sy0">;</span> i<span class="sy0">--</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; element<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">elemAngle</span> <span class="sy0">=</span> i <span class="sy0">*</span> Math.<span class="me1">PI</span> <span class="sy0">*</span> <span class="nu0">2</span> <span class="sy0">/</span> element.<span class="me1">length</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">// call render function over and over</span><br />
setInterval<span class="br0">&#40;</span>render<span class="sy0">,</span> <span class="nu0">20</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<br />
<span class="co1">// Handles how and where each element will be rendered.</span><br />
<span class="kw2">function</span> render<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//Steps through each element...</span><br />
&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i <span class="sy0">=</span> element.<span class="me1">length</span> <span class="sy0">-</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&gt;=</span> <span class="nu0">0</span><span class="sy0">;</span> i<span class="sy0">--</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// offset adds degrees to where the element </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// is currently on the circle</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> angle <span class="sy0">=</span> element<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">elemAngle</span> <span class="sy0">+</span> offset<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Trig to figure out the size and where the</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// text should go</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; x <span class="sy0">=</span> <span class="nu0">120</span> <span class="sy0">+</span> Math.<span class="me1">sin</span><span class="br0">&#40;</span>angle<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="nu0">30</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; y <span class="sy0">=</span> <span class="nu0">45</span> <span class="sy0">+</span> Math.<span class="me1">cos</span><span class="br0">&#40;</span>angle<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="nu0">40</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; size <span class="sy0">=</span> Math.<span class="me1">round</span><span class="br0">&#40;</span><span class="nu0">40</span> <span class="sy0">-</span> Math.<span class="me1">sin</span><span class="br0">&#40;</span>angle<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="nu0">40</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Centers the text, instead of being left aligned.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> elementCenter <span class="sy0">=</span> $<span class="br0">&#40;</span>element<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="me1">width</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">/</span> <span class="nu0">2</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Figure out the x value of the element.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> leftValue <span class="sy0">=</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>$list.<span class="me1">width</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">/</span><span class="nu0">2</span><span class="br0">&#41;</span> <span class="sy0">*</span> x <span class="sy0">/</span> <span class="nu0">100</span> <span class="sy0">-</span> elementCenter<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;px&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Apply the values to the text</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>element<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;fontSize&quot;</span><span class="sy0">,</span> size <span class="sy0">+</span> <span class="st0">&quot;pt&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>element<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;opacity&quot;</span><span class="sy0">,</span>size<span class="sy0">/</span><span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>element<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;zIndex&quot;</span> <span class="sy0">,</span>size<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>element<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;left&quot;</span> <span class="sy0">,</span>leftValue<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>element<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;top&quot;</span><span class="sy0">,</span> y <span class="sy0">+</span> <span class="st0">&quot;%&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Rotate the circle</span><br />
&nbsp; &nbsp; offset <span class="sy0">+=</span> stepping<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<p>Just to step through what we did.&#160; First we setup the mouse event. We figure out how far the mouse is away from the center and assign it to a variable that controls the speed of the scrolling list. </p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="speed" border="0" alt="speed" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image5.png" width="260" height="243" /> </p>
<p>After that we step through each element in our list and give each one a spot on our 3D circle.&#160; A for loop walks through each one, and evenly assigns an angle to each element. (e.g. 1st = 0 degrees, 2nd = 5 degrees, 3rd = 10 degrees…etc) </p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="degrees" border="0" alt="degrees" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image6.png" width="260" height="243" /> </p>
<p>After we placed each element on our 3D circle it’s time to animate it.&#160; We use a setInterval to call our render function repeatedly.&#160; The render function steps through each element and figures out where and how it should be displayed.&#160; The trigonometry basically creates a set of numbers that if you plot it on a graph look like a wave. If you apply those numbers to the size of the text, it gives the appearance of going back and forth in space.&#160; If you also apply these numbers to the y, this will give you the appearance that the text is going around in a circle. If you don’t understand the math inside this function not to worry.&#160; I encourage you to play around with the numbers to see how each number effects the outcome.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3d" border="0" alt="3d" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image7.png" width="260" height="243" /> </p>
<p>&#160;</p>
<h3>The Finish Line</h3>
<p>That’s all there is to it.&#160; Here is the code all together so you can have a look.&#160; Enjoy.</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>jQuery 3D<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; font-family: Arial, &quot;MS Trebuchet&quot;, sans-serif;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color: #111;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list{<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0 auto;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:600px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:600px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; overflow:hidden;<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:relative;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color: #000;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list ul,<br />
&nbsp; &nbsp; #list li{<br />
&nbsp; &nbsp; &nbsp; &nbsp; list-style:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; padding:0;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list a{<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:absolute;<br />
&nbsp; &nbsp; &nbsp; &nbsp; text-decoration: none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; color:#666;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #list a:hover{<br />
&nbsp; &nbsp; &nbsp; &nbsp; color:#ccc;<br />
&nbsp; &nbsp; }<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;list&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>ajax<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>css<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>design<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>firefox<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>flash<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>html<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Devirtuoso<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>jquery<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>PHP<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SEO<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>usability<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>www<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>web<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>xhtml<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;</span><br />
<br />
<br />
$(document).ready(function(){<br />
&nbsp; &nbsp; <br />
var element = $('#list a');<br />
var offset = 0; <br />
var stepping = 0.03;<br />
var list = $('#list');<br />
var $list = $(list)<br />
<br />
$list.mousemove(function(e){<br />
&nbsp; &nbsp; var topOfList = $list.eq(0).offset().top<br />
&nbsp; &nbsp; var listHeight = $list.height()<br />
&nbsp; &nbsp; stepping = (e.clientY - topOfList) / &nbsp;listHeight * 0.2 - 0.1;<br />
&nbsp; &nbsp; <br />
});<br />
<br />
<br />
for (var i = element.length - 1; i &gt;= 0; i--)<br />
{<br />
&nbsp; &nbsp; element[i].elemAngle = i * Math.PI * 2 / element.length;<br />
}<br />
<br />
<br />
setInterval(render, 20);<br />
<br />
<br />
function render(){<br />
&nbsp; &nbsp; for (var i = element.length - 1; i &gt;= 0; i--){<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; var angle = element[i].elemAngle + offset;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; x = 120 + Math.sin(angle) * 30;<br />
&nbsp; &nbsp; &nbsp; &nbsp; y = 45 + Math.cos(angle) * 40;<br />
&nbsp; &nbsp; &nbsp; &nbsp; size = Math.round(40 - Math.sin(angle) * 40);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; var elementCenter = $(element[i]).width() / 2;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; var leftValue = (($list.width()/2) * x / 100 - elementCenter) + &quot;px&quot;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;fontSize&quot;, size + &quot;pt&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;opacity&quot;,size/100);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;zIndex&quot; ,size);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;left&quot; ,leftValue);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(element[i]).css(&quot;top&quot;, y + &quot;%&quot;);<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; offset += stepping;<br />
}<br />
<br />
&nbsp; &nbsp; <br />
});<br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/3D-jQuery/example.zip" target="_blank">Download</a><a class="Example" href="http://www.devirtuoso.com/Examples/3D-jQuery/" target="_blank">Example</a></div>
<p>&#160;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/08/how-to-create-a-3d-tag-cloud-in-jquery/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Beginners Guide to Using AJAX with jQuery Part 2</title>
		<link>http://www.devirtuoso.com/2009/08/beginners-guide-to-using-ajax-with-jquery-part-2/</link>
		<comments>http://www.devirtuoso.com/2009/08/beginners-guide-to-using-ajax-with-jquery-part-2/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 23:27:51 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Back End]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=817</guid>
		<description><![CDATA[In a previous tutorial we showed how to use AJAX with jQuery.. We created a simple input box that outputs info from the server after each character you type in.&#160; In this tutorial we will take one step further and create an auto complete feature, much like Google or Yahoo’s&#160; search box.

What we will be [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a title="Beginners Guide to Using AJAX with jQuery part 1" href="http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/">previous tutorial</a> we showed how to use <strong>AJAX</strong> with <strong>jQuery.</strong>. We created a simple input box that outputs info from the server after each character you type in.&#160; In this tutorial we will take one step further and create an auto complete feature, much like Google or Yahoo’s&#160; search box.</p>
<p><span id="more-817"></span></p>
<h3>What we will be building</h3>
<p>We’ll be creating an input box that when you type it checks out the database for any words that might match what you typed in.&#160; The database I’ll be using is a dictionary I found on the net.&#160; It seems to be missing quite a few words, but it’ll work for what we will be doing.</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/jQuery-Ajax-2/example.zip" target="_blank">Download</a> <a class="Example" href="http://www.devirtuoso.com/Examples/jQuery-Ajax-2/" target="_blank">Example</a> </div>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image3.png" width="285" height="153" /> </p>
<p>&#160;</p>
<h3>Getting Started</h3>
<p>Since we’ll be starting where we left off in the tutorial <a title="Beginners Guide to using AJAX with jQuery" href="http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/">Beginners Guide to using AJAX with jQuery</a> it might be a good idea to pick up the <a title="Original tutorial files" href="http://www.devirtuoso.com/Examples/jQuery-Ajax/example.zip">original files</a> if you want build it out yourself.&#160; There are two files.&#160; One being the HTML file with the jQuery and the other being the PHP file that process the AJAX request.&#160; </p>
<p>Here is a look at where we left off:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0"> &nbsp; &nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Ajax With Jquery<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(document).ready(function(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#txtValue').keyup(function(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendValue($(this).val()); &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
&nbsp; &nbsp; &nbsp; &nbsp; function sendValue(str){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.post(&quot;ajax.php&quot;,{ sendValue: str },<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function(data){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#display').html(data.returnValue);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }, &quot;json&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp;<br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;txtValue&quot;</span>&gt;</span>Enter a value : <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;txtValue&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;txtValue&quot;</span>&gt;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;display&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp;<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p><strong>PHP</strong>:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span><br />
<br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'sendValue'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'sendValue'</span><span class="br0">&#93;</span><span class="sy0">;</span> &nbsp;<br />
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;returnValue&quot;</span><span class="sy0">=&gt;</span><span class="st0">&quot;This is returned from PHP : &quot;</span><span class="sy0">.</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
<br />
<span class="sy1">?&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>The Database</h3>
<p>The database we’ll be creating consists of one table called “Words”. In that table there is only one column called “Word”.&#160; Here is the <a title="Dictionary csv file" href="http://www.devirtuoso.com/Examples/jQuery-Ajax-2/dictionary.csv">CSV file</a> that I used to populate the database we’ll be using.&#160; </p>
<p>The first thing we’re going to do is connect to the database.</p>
<p><strong>PHP</strong>:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'sendToValue'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_escape_string"><span class="kw3">mysql_escape_string</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'sendToValue'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>&nbsp; &nbsp; <br />
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//The Connection Info</span><br />
&nbsp; &nbsp; <span class="re0">$username</span><span class="sy0">=</span><span class="st0">&quot;root&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$password</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$host</span><span class="sy0">=</span><span class="st0">&quot;localhost&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$database</span> <span class="sy0">=</span> <span class="st0">&quot;dictionary&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//Connecting to the database</span><br />
&nbsp; &nbsp; <span class="re0">$mysqli</span> <span class="sy0">=</span> &nbsp;<span class="kw2">new</span> mysqli<span class="br0">&#40;</span><span class="re0">$host</span><span class="sy0">,</span> <span class="re0">$username</span><span class="sy0">,</span> <span class="re0">$password</span><span class="sy0">,</span> <span class="re0">$database</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Make sure we connected okay </span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>mysqli_connect_errno<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/printf"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;Connect failed: <span class="es6">%s</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> mysqli_connect_error<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="co1">// If there is no value send empty value back to jQuery.</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;empty&quot;</span><span class="sy0">=&gt;</span>true<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>Getting Results from the Database</h3>
<p>After connecting to the database, our goal now is to pull words from the database that match what was passed to the PHP via AJAX.&#160;&#160; The SQL we’ll be using to query the database isn’t too difficult.</p>
<div class="codecolorer-container sql " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="sql codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw1">SELECT</span> <span class="sy0">*</span> <span class="kw1">FROM</span> <span class="st0">`Words`</span> <span class="kw1">WHERE</span> <span class="st0">`Word`</span> <span class="kw1">LIKE</span> <span class="st0">'$value%'</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span></div></td></tr></tbody></table></div>
<p>The SQL statement simply means select 5 rows from the “Words” table where the column “Word”&#160; starts with whichever value we pass in. $value is a PHP variable, and % is a wild card meaning any value. </p>
<p>Here is the <strong>PHP</strong> to Query the Database:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$returnValue</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="co1">// define variable that will be sent back to jQuery&nbsp; </span><br />
&nbsp; &nbsp; <br />
<span class="co1">// Query the database</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$result</span> <span class="sy0">=</span> <span class="re0">$mysqli</span><span class="sy0">-&gt;</span><span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM `Words` WHERE `Word` LIKE '<span class="es4">$value</span>%' LIMIT 5 &quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//If there are some results then...</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">num_rows</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// create unordered list with results</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$returnValue</span> <span class="sy0">.=</span> <span class="st0">&quot;&lt;ul&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//step through each result.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="re0">$row</span> <span class="sy0">=</span> <span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">fetch_array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// $row['Word'] references the &quot;Word&quot; column of the result.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// htmlentities is good security practice. Make sure there is no harmful</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// JavaScript being outputed.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$returnValue</span> <span class="sy0">.=</span> <span class="st0">&quot;&lt;li&gt;&quot;</span><span class="sy0">.</span><a href="http://www.php.net/htmlentities"><span class="kw3">htmlentities</span></a><span class="br0">&#40;</span><span class="re0">$row</span><span class="br0">&#91;</span><span class="st_h">'Word'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;&lt;/li&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$returnValue</span> <span class="sy0">.=</span> <span class="st0">&quot;&lt;/ul&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Send information back to jQuery.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;returnFromValue&quot;</span><span class="sy0">=&gt;</span><span class="re0">$returnValue</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// If there are no results send empty value back to jQuery.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;empty&quot;</span><span class="sy0">=&gt;</span>true<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; <span class="coMULTI">/* free result set */</span><br />
&nbsp; &nbsp; <span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">close</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<p>After we get the results back, we’ll want to output any results we get back as an unordered list. If there aren’t any results we’ll output an empty value so we know we didn’t get any results back.</p>
<p>&#160;</p>
<h3>Let the Beautification Begin</h3>
<p>As of right now we should have a list of words that show up after each character we type in.&#160; Now we just have to beautify it a bit.&#160; We’ll have to make it so that the list doesn’t appear until the user starts typing, and disappear after the input box loses focus.&#160; We’ll also make it so that when you click on one of the words in the list it will populate the input box with that value.&#160; Additionally we should handle when a user presses the down or up button, but we’re not going to for the sake of keeping things simple for this tutorial.</p>
<p>Here is the <strong>jQuery</strong>:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#txtValue'</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="co1">// when a key is pressed send value to php</span><br />
&nbsp; &nbsp; .<span class="me1">keyup</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sendValue<span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="co1">// hide auto complete list when input loses focus</span><br />
&nbsp; &nbsp; .<span class="kw3">blur</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#display'</span><span class="br0">&#41;</span>.<span class="me1">slideUp</span><span class="br0">&#40;</span><span class="nu0">500</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="co1">//Send and recieve values from PHP</span><br />
<span class="kw2">function</span> sendValue<span class="br0">&#40;</span>str<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; $.<span class="me1">post</span><span class="br0">&#40;</span><span class="st0">&quot;ajax.php&quot;</span><span class="sy0">,</span> <span class="br0">&#123;</span> sendToValue<span class="sy0">:</span> str <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; <span class="kw2">function</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>data.<span class="me1">empty</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$<span class="br0">&#40;</span><span class="st0">'#display'</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span>data.<span class="me1">returnFromValue</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$<span class="br0">&#40;</span><span class="st0">'#display'</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">//Sets up auto complete list mouse events.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#display'</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span><span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#display'</span><span class="br0">&#41;</span>.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Cleans up list's mouse events</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cleanUp<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;json&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">//Setup list's click and hover mouse events.</span><br />
<span class="kw2">function</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; cleanUp<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#display li'</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; .<span class="me1">click</span><span class="br0">&#40;</span>clicked<span class="br0">&#41;</span><br />
&nbsp; &nbsp; .<span class="me1">hover</span><span class="br0">&#40;</span>toggleOver<span class="sy0">,</span>toggleOver<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">//unsets list's mouse events.</span><br />
<span class="kw2">function</span> cleanUp <span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#display li'</span><span class="br0">&#41;</span>.<span class="me1">unbind</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#display li'</span><span class="br0">&#41;</span>.<span class="me1">unbind</span><span class="br0">&#40;</span><span class="st0">'mouseenter'</span><span class="br0">&#41;</span>.<span class="me1">unbind</span><span class="br0">&#40;</span><span class="st0">'mouseleave'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">// list's click event handler. &nbsp;Puts selected text into input text box.</span><br />
<span class="kw2">function</span> clicked<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#txtValue'</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">text</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">// highlight list item when user rolls over it.</span><br />
<span class="kw2">function</span> toggleOver<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">toggleClass</span><span class="br0">&#40;</span><span class="st0">&quot;over&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<p><strong>CSS</strong>:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace">body<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span><span class="re0">#111</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#999</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">font-family</span><span class="sy0">:</span> Arial<span class="sy0">,</span> <span class="st0">&quot;MS Trebuchet&quot;</span><span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="coMULTI">/* Put list under input box.*/</span><br />
<span class="re0">#display</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span><span class="re0">#333333</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="kw2">white</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span><span class="re3">100px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="re3">10px</span> <span class="nu0">0</span> <span class="re3">10px</span> <span class="re3">5px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span><span class="kw2">relative</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">145px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#display</span> ul<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/*Give list item hand pointer*/</span><br />
<span class="re0">#display</span> li<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">cursor</span><span class="sy0">:</span> <span class="kw2">pointer</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Roll over state of list item*/</span><br />
.over<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span><span class="re0">#6484CE</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>Bringing it All Together</h3>
<p>That’s all the code we’ll need for now.&#160; The auto complete feature can definitely be improved, but hopefully this tutorial showed a useful use of AJAX with jQuery.</p>
<p>Here is all the code together:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Ajax With Jquery<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color:#111;<br />
&nbsp; &nbsp; &nbsp; &nbsp; color:#999;<br />
&nbsp; &nbsp; &nbsp; &nbsp; font-family: Arial, &quot;MS Trebuchet&quot;, sans-serif;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #display{<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color:#333333;<br />
&nbsp; &nbsp; &nbsp; &nbsp; color:white;<br />
&nbsp; &nbsp; &nbsp; &nbsp; left:100px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; padding:10px 0 10px 5px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:relative;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:145px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; display:none;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #display ul{<br />
&nbsp; &nbsp; &nbsp; &nbsp; list-style:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; padding:0;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #display li{<br />
&nbsp; &nbsp; &nbsp; &nbsp; cursor: pointer;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; .over{<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color:#6484CE;<br />
&nbsp; &nbsp; }<br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; $(document).ready(function(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#txtValue')<br />
&nbsp; &nbsp; &nbsp; &nbsp; .keyup(function(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendValue($(this).val());<br />
&nbsp; &nbsp; &nbsp; &nbsp; })<br />
&nbsp; &nbsp; &nbsp; &nbsp; .blur(function(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#display').slideUp(500);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
<br />
&nbsp; &nbsp; });<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function sendValue(str){<br />
&nbsp; &nbsp; &nbsp; &nbsp; $.post(&quot;ajax.php&quot;, { sendToValue: str },<br />
&nbsp; &nbsp; &nbsp; &nbsp; function(data){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!data.empty){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$('#display').html(data.returnFromValue);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$('#display').show();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; init();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }else{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#display').html(&quot;&quot;)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#display').hide();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cleanUp();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }, &quot;json&quot;);<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function init(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; cleanUp();<br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#display li')<br />
&nbsp; &nbsp; &nbsp; &nbsp; .click(clicked)<br />
&nbsp; &nbsp; &nbsp; &nbsp; .hover(toggleOver,toggleOver);<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function cleanUp (){<br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#display li').unbind(&quot;click&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#display li').unbind('mouseenter').unbind('mouseleave');<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function clicked(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#txtValue').val($(this).text());<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function toggleOver(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(this).toggleClass(&quot;over&quot;);<br />
&nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; <br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>On keyup this text box sends a request to PHP and a value is returned.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;txtValue&quot;</span>&gt;</span>Enter a value : <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;txtValue&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;txtValue&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;display&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p><strong>PHP</strong>:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span> <br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'sendToValue'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_escape_string"><span class="kw3">mysql_escape_string</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'sendToValue'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>&nbsp; &nbsp; <br />
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$value</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">$returnValue</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="re0">$username</span><span class="sy0">=</span><span class="st0">&quot;root&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$password</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$host</span><span class="sy0">=</span><span class="st0">&quot;localhost&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$database</span> <span class="sy0">=</span> <span class="st0">&quot;dictionary&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="re0">$mysqli</span> <span class="sy0">=</span> &nbsp;<span class="kw2">new</span> mysqli<span class="br0">&#40;</span><span class="re0">$host</span><span class="sy0">,</span> <span class="re0">$username</span><span class="sy0">,</span> <span class="re0">$password</span><span class="sy0">,</span> <span class="re0">$database</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/* check connection */</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>mysqli_connect_errno<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/printf"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;Connect failed: <span class="es6">%s</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> mysqli_connect_error<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$result</span> <span class="sy0">=</span> <span class="re0">$mysqli</span><span class="sy0">-&gt;</span><span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM `Words` WHERE `Word` LIKE '<span class="es4">$value</span>%' LIMIT 5 &quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">num_rows</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$returnValue</span> <span class="sy0">.=</span> <span class="st0">&quot;&lt;ul&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="re0">$row</span> <span class="sy0">=</span> <span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">fetch_array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$returnValue</span> <span class="sy0">.=</span> <span class="st0">&quot;&lt;li&gt;&quot;</span><span class="sy0">.</span><a href="http://www.php.net/htmlentities"><span class="kw3">htmlentities</span></a><span class="br0">&#40;</span><span class="re0">$row</span><span class="br0">&#91;</span><span class="st_h">'Word'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;&lt;/li&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$returnValue</span> <span class="sy0">.=</span> <span class="st0">&quot;&lt;/ul&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;returnFromValue&quot;</span><span class="sy0">=&gt;</span><span class="re0">$returnValue</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;empty&quot;</span><span class="sy0">=&gt;</span>true<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* free result set */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">close</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;empty&quot;</span><span class="sy0">=&gt;</span>true<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
<span class="sy1">?&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/jQuery-Ajax-2/example.zip" target="_blank">Download</a> <a class="Example" href="http://www.devirtuoso.com/Examples/jQuery-Ajax-2/" target="_blank">Example</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/08/beginners-guide-to-using-ajax-with-jquery-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Styling Drop Down Boxes with jQuery</title>
		<link>http://www.devirtuoso.com/2009/08/styling-drop-down-boxes-with-jquery/</link>
		<comments>http://www.devirtuoso.com/2009/08/styling-drop-down-boxes-with-jquery/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 09:58:02 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=804</guid>
		<description><![CDATA[One problem with HTML forms is it is hard to style the elements to fit into your design.  The tutorial will show you how to style the hardest of them all, the select box.

The Plan
Unfortunately browsers allow limited skinning of select boxes.  So the plan is to use jQuery to change a select box into [...]]]></description>
			<content:encoded><![CDATA[<p>One problem with HTML forms is it is hard to style the elements to fit into your design.  The tutorial will show you how to style the hardest of them all, the select box.</p>
<p><span id="more-804"></span></p>
<h3>The Plan</h3>
<p>Unfortunately browsers allow limited skinning of select boxes.  So the plan is to use jQuery to change a select box into a text box and a unorded list for the dropdown.  When a user clicks on the text box it will display the list below the textbox, just like a regular select box, but it’s easier to style.</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/Styling-Dropdown/example.zip" target="_blank">Download</a> <a class="Example" href="http://www.devirtuoso.com/Examples/Styling-Dropdown/" target="_blank">Example</a></div>
<p>&#160;</p>
<h3>Getting Started</h3>
<p>The first thing we’ll need is a select box.  Nothing special here, just a regular select, but we’re going to give it an id so we can reference it later in the jQuery.</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0"> &nbsp; &nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Styling Select Boxes<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/select.html"><span class="kw2">select</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;Items&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;Items&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option1&quot;</span>&gt;</span>option1<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option2&quot;</span>&gt;</span>option2<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option3&quot;</span>&gt;</span>option3<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option4&quot;</span>&gt;</span>option4<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
<br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/select.html"><span class="kw2">select</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>The jQuery</h3>
<p>To save a little time we are going to use a plugin to handle converting the select into a text box.  I’ll be using the plugin from <a href="http://www.brainfault.com/2008/02/10/new-release-of-jquery-selectbox-replacement/" target="_blank">brainfault.com</a>. From my experience this plugin is far less painful then other ones I’ve tried. It’s as simple as importing the plugin and running a method.  Here is the code to get it up and running.</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc2">&lt;<a href="http://december.com/html/4/element/link.html"><span class="kw2">link</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;selectbox.css&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;jquery.selectbox-0.5.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;</span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('#Items').selectbox();<br />
});<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>Basically we’ve just imported the CSS which styles everything, jQuery, and the plugin.  Once we have those then we just have to run the selectbox method on the select boxes we would like to style.  We could have done something like $(‘select’) if we wanted to apply it to all select boxes.</p>
<p>&#160;</p>
<h3>The CSS</h3>
<p>The CSS in selectbox.css isn’t too difficult, the most important part is applying the background image to the newly created text box.  Really you don’t need to touch anything in the CSS and just change the image.  In our case we want to make a couple of changes.  We’re simply going to change the font size and width inside the selectbox class.</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/* Look and feel of select box */</span><br />
<span class="re1">.selectbox</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">0px</span> <span class="re3">5px</span> <span class="re3">10px</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">2px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">font-family</span><span class="re2">:Verdana</span><span class="sy0">,</span> Geneva<span class="sy0">,</span> Arial<span class="sy0">,</span> Helvetica<span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">font-size</span><span class="sy0">:</span><span class="re3">1em</span><span class="sy0">;</span><span class="coMULTI">/* Resize Font*/</span><br />
&nbsp; <span class="kw1">width</span> <span class="sy0">:</span> <span class="re3">190px</span><span class="sy0">;</span> <span class="coMULTI">/* Resize Width */</span><br />
&nbsp; <span class="kw1">display</span> <span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">text-align</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'bg_select.png'</span><span class="br0">&#41;</span> <span class="kw1">right</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">cursor</span><span class="sy0">:</span> <span class="kw2">pointer</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#D1E4F6</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#333</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>The full CSS file can be seen here:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/* Drop down styles*/</span><br />
div<span class="re1">.selectbox-wrapper</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">position</span><span class="sy0">:</span><span class="kw2">absolute</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">400px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">background-color</span><span class="sy0">:</span><span class="kw2">white</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#ccc</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin-top</span><span class="sy0">:</span><span class="re3">-10px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">text-align</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">max-height</span><span class="sy0">:</span><span class="re3">200px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">overflow</span><span class="sy0">:</span><span class="kw2">auto</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/*Drop down list styles*/</span><br />
div<span class="re1">.selectbox-wrapper</span> ul <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">list-style-type</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="coMULTI">/* Selected item in dropdown list*/</span><br />
div<span class="re1">.selectbox-wrapper</span> ul li<span class="re1">.selected</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#EAF2FB</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Hover state for dropdown list */</span><br />
div<span class="re1">.selectbox-wrapper</span> ul li<span class="re1">.current</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#CDD8E4</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Drop down list items style*/</span><br />
div<span class="re1">.selectbox-wrapper</span> ul li <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">list-style-type</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">display</span><span class="sy0">:</span><span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="re3">2px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">cursor</span><span class="sy0">:</span><span class="kw2">pointer</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Look and feel of select box */</span><br />
<span class="re1">.selectbox</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">0px</span> <span class="re3">5px</span> <span class="re3">10px</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">2px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">font-family</span><span class="re2">:Verdana</span><span class="sy0">,</span> Geneva<span class="sy0">,</span> Arial<span class="sy0">,</span> Helvetica<span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">font-size</span><span class="sy0">:</span><span class="re3">1em</span><span class="sy0">;</span><span class="coMULTI">/* Resize Font*/</span><br />
&nbsp; <span class="kw1">width</span> <span class="sy0">:</span> <span class="re3">190px</span><span class="sy0">;</span> <span class="coMULTI">/* Resize Width */</span><br />
&nbsp; <span class="kw1">display</span> <span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">text-align</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'bg_select.png'</span><span class="br0">&#41;</span> <span class="kw1">right</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">cursor</span><span class="sy0">:</span> <span class="kw2">pointer</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#D1E4F6</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#333</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>The Image</h3>
<p>The last thing we need to handle is creating the image that will be the background for our text box.  On the far left of the image is the button and to the left will be the background of the select box.  Here is the image we will be using.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="bg_select" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/bg_select_thumb.png" border="0" alt="bg_select" width="526" height="26" /></p>
<p>That’s it, after we’ve created the image we’re good to go.  I recommend looking at the plugin code to get an idea how it all works. This is a fantastic plugin so be sure to give your props over at  <a href="www.brainfault.com" target="_blank">www.brainfault.com</a> .</p>
<p>Here is the code all together.</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0"> &nbsp; &nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Styling Select Boxes<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/link.html"><span class="kw2">link</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;selectbox.css&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;jquery.selectbox-0.5.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;</span><br />
&nbsp; &nbsp; $(document).ready(function() {<br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#Items').selectbox();<br />
&nbsp; &nbsp; });<br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background-color: #111;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/select.html"><span class="kw2">select</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;Items&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;Items&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option1&quot;</span>&gt;</span>option1<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option2&quot;</span>&gt;</span>option2<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option3&quot;</span>&gt;</span>option3<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;option4&quot;</span>&gt;</span>option4<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/select.html"><span class="kw2">select</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>The CSS:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/* Drop down styles*/</span><br />
div<span class="re1">.selectbox-wrapper</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">position</span><span class="sy0">:</span><span class="kw2">absolute</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">400px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">background-color</span><span class="sy0">:</span><span class="kw2">white</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#ccc</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin-top</span><span class="sy0">:</span><span class="re3">-10px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">text-align</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">max-height</span><span class="sy0">:</span><span class="re3">200px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">overflow</span><span class="sy0">:</span><span class="kw2">auto</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/*Drop down list styles*/</span><br />
div<span class="re1">.selectbox-wrapper</span> ul <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">list-style-type</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="re3">0px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="coMULTI">/* Selected item in dropdown list*/</span><br />
div<span class="re1">.selectbox-wrapper</span> ul li<span class="re1">.selected</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#EAF2FB</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Hover state for dropdown list */</span><br />
div<span class="re1">.selectbox-wrapper</span> ul li<span class="re1">.current</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#CDD8E4</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Drop down list items style*/</span><br />
div<span class="re1">.selectbox-wrapper</span> ul li <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">list-style-type</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">display</span><span class="sy0">:</span><span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding</span><span class="sy0">:</span><span class="re3">2px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">cursor</span><span class="sy0">:</span><span class="kw2">pointer</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Look and feel of select box */</span><br />
<span class="re1">.selectbox</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">0px</span> <span class="re3">5px</span> <span class="re3">10px</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">2px</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">font-family</span><span class="re2">:Verdana</span><span class="sy0">,</span> Geneva<span class="sy0">,</span> Arial<span class="sy0">,</span> Helvetica<span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">font-size</span><span class="sy0">:</span><span class="re3">1em</span><span class="sy0">;</span><span class="coMULTI">/* Resize Font*/</span><br />
&nbsp; <span class="kw1">width</span> <span class="sy0">:</span> <span class="re3">190px</span><span class="sy0">;</span> <span class="coMULTI">/* Resize Width */</span><br />
&nbsp; <span class="kw1">display</span> <span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">text-align</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'bg_select.png'</span><span class="br0">&#41;</span> <span class="kw1">right</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">cursor</span><span class="sy0">:</span> <span class="kw2">pointer</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#D1E4F6</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#333</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/Styling-Dropdown/example.zip" target="_blank">Download</a> <a class="Example" href="http://www.devirtuoso.com/Examples/Styling-Dropdown/" target="_blank">Example</a></div>
<p>&#160;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/08/styling-drop-down-boxes-with-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Making Hyperlink Icons with CSS</title>
		<link>http://www.devirtuoso.com/2009/08/making-hyperlink-icons-with-css/</link>
		<comments>http://www.devirtuoso.com/2009/08/making-hyperlink-icons-with-css/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 23:24:59 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[hyperlinks]]></category>
		<category><![CDATA[icons]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=787</guid>
		<description><![CDATA[You have often seen hyperlinks that have little icons beside them to let you know where they link to.&#160; In this tutorial we will show how to handle this using only CSS.

&#160;
Beautifying Hyperlinks
Hyperlinks can link to any number of different sources (pdfs, emails, external links, popups). By placing an icon beside each of these types [...]]]></description>
			<content:encoded><![CDATA[<p>You have often seen <strong>hyperlinks</strong> that have little <strong>icons</strong> beside them to let you know where they link to.&#160; In this tutorial we will show how to handle this using only <strong>CSS</strong>.</p>
<p><span id="more-787"></span></p>
<p>&#160;</p>
<h3>Beautifying Hyperlinks</h3>
<p>Hyperlinks can link to any number of different sources (pdfs, emails, external links, popups). By placing an icon beside each of these types it will take the surprise out of clicking on a hyperlink for the user.&#160; The plan is to do this in an intelligent manner so users don’t have to worry about placing a class on each link.&#160; This is especially handy if you’re building for CMS users that aren’t HTML savvy.</p>
<div class="resources"> <a href="http://www.devirtuoso.com/Examples/Hyperlink-Icons/example.zip"class="Download">Download</a> <a href="http://www.devirtuoso.com/Examples/Hyperlink-Icons/"class="Example">Example</a></div>
<p>&#160;<img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="hyperlink icons" border="0" alt="hyperlink icons" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image.png" width="162" height="208" /> </p>
<p>A couple of notes.&#160; The CSS we will be using <strong>doesn’t work in IE7 unless you’re using a strict doctype</strong>. Also this<strong> does not work in IE6</strong> (surprise, surprise), you will have to use JavaScript if you want it to work.&#160; Personally I usually use strict doctype and IE6 is dying, so I think it’s a viable solution for future use.</p>
<p>&#160;</p>
<h3>Creating the Hyperlinks</h3>
<p>We will just need to create some plain jane anchor tags, like you’ve done a million times before.&#160; All the magic lies in the CSS. It will create the icons without having to do anything special with your HTML.</p>
<p>Here is the <strong>HTML</strong>:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc-1">&lt;!-- Be sure to use Strict doctype for IE 7 --&gt;</span><br />
<span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a> xmlns<span class="sy0">=</span><span class="st0">&quot;http://www.w3.org/1999/xhtml&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;en&quot;</span> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;en&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Hyperlink Icons<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#Top&quot;</span>&gt;</span>Anchor Tag<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- target=&quot;_blank doesn't validate using strict mode. </span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; You can use rel instead but you're going to have to </span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write some JavaScript to make it work--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.google.com&quot;</span> <span class="kw3">target</span><span class="sy0">=</span><span class="st0">&quot;_blank&quot;</span> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;external&quot;</span>&gt;</span>External Link<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;mailto:test@test.com&quot;</span>&gt;</span>Email Address<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.devirtuoso.com/file.pdf&quot;</span>&gt;</span>PDF<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;popup otherClass&quot;</span>&gt;</span>Popup<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>How the CSS is Going to Work</h3>
<p>The magic lies in the CSS selector.&#160; We’ll be using a selector that is similar to regular expression.&#160; So for example, you can specify that you want to style any item that has an href value that ends, starts, or contains a specific value.&#160; This opens up a world of possibilities.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="css description" border="0" alt="css description" src="http://www.devirtuoso.com/wp-content/uploads/2009/08/image1.png" width="525" height="382" /> </p>
<p>You’ll notice the $ before the =, this is specifying that we want what is at the end of the href.&#160; There are more tags like this to specify different locations.</p>
<ul>
<li>$=&#160;&#160; End of String </li>
<li>^=&#160;&#160; Beginning of String </li>
<li>~=&#160; String contains the word and is separated from other words by spaces. </li>
<li>*=&#160;&#160; String contains the word. (doesn’t have to be separated by spaces) </li>
</ul>
<p>&#160;</p>
<h3>Building the CSS</h3>
<p>Now that we have a basic understanding of how this is going work, lets jump in and get our hands dirty.&#160; We’re going to create a style for each anchor tag that we created earlier.</p>
<p>Here is the <strong>CSS</strong>:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/* Generic Styling */</span> &nbsp; <br />
body<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">font-family</span><span class="sy0">:</span> Arial<span class="sy0">,</span> <span class="st0">&quot;MS Trebuchet&quot;</span><span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
a<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#57c</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
a<span class="re2">:hover</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#c75</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="sy0">:</span><span class="kw2">underline</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<br />
<span class="coMULTI">/* For internal tags e.g. #backToTop */</span><br />
a<span class="br0">&#91;</span>href <span class="sy0">^=</span> <span class="st0">'#'</span><span class="br0">&#93;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">20px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">internal.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw2">scroll</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* For external links */</span><br />
a<span class="br0">&#91;</span>target <span class="sy0">=</span> <span class="st0">'_blank'</span><span class="br0">&#93;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">20px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">external.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw2">scroll</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* For Emails */</span><br />
a<span class="br0">&#91;</span>href <span class="sy0">^=</span> <span class="st0">'mailto'</span><span class="br0">&#93;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">20px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">mail.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw2">scroll</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* For PDFs */</span><br />
a<span class="br0">&#91;</span>href $<span class="sy0">=</span> <span class="st0">'.pdf'</span><span class="br0">&#93;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">20px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">pdf.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw2">scroll</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* For popups */</span><br />
a<span class="br0">&#91;</span>class ~<span class="sy0">=</span> <span class="st0">'popup'</span><span class="br0">&#93;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span><span class="re3">20px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">popup.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw2">scroll</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>Bringing it All Together</h3>
<p>I encourage you to get out there and experiment with this.&#160; There are so many possible uses for these selectors.</p>
<p>Here is the code all together:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a> xmlns<span class="sy0">=</span><span class="st0">&quot;http://www.w3.org/1999/xhtml&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;en&quot;</span> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;en&quot;</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Hyperlink Icons<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-family: Arial, &quot;MS Trebuchet&quot;, sans-serif;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; a{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color:#57c;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text-decoration:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; a:hover{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color:#c75;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text-decoration:underline;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; a[href ^= '#']{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-left:20px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: transparent url(internal.gif) no-repeat scroll left top;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; a[target = '_blank']{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-left:20px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: transparent url(external.gif) no-repeat scroll left top;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; a[href ^= 'mailto']{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-left:20px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: transparent url(mail.gif) no-repeat scroll left top;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; a[href $= '.pdf']{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-left:20px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: transparent url(pdf.gif) no-repeat scroll left top;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; a[class ~= 'popup']{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-left:20px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: transparent url(popup.gif) no-repeat scroll left top;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#Top&quot;</span>&gt;</span>Anchor Tag<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.google.com&quot;</span> <span class="kw3">target</span><span class="sy0">=</span><span class="st0">&quot;_blank&quot;</span> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;external&quot;</span>&gt;</span>External Link<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><span class="sc-1">&lt;!-- target=&quot;_blank doesn't validate using strict mode&quot;--&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;mailto:test@test.com&quot;</span>&gt;</span>Email Address<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.devirtuoso.com/file.pdf&quot;</span>&gt;</span>PDF<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;popup otherClass&quot;</span>&gt;</span>Popup<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<div class="resources"> <a href="http://www.devirtuoso.com/Examples/Hyperlink-Icons/example.zip"class="Download">Download</a> <a href="http://www.devirtuoso.com/Examples/Hyperlink-Icons/"class="Example">Example</a></div>
<p>&#160;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/08/making-hyperlink-icons-with-css/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How To Build an Animated Header in jQuery</title>
		<link>http://www.devirtuoso.com/2009/07/how-to-build-an-animated-header-in-jquery/</link>
		<comments>http://www.devirtuoso.com/2009/07/how-to-build-an-animated-header-in-jquery/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 19:25:46 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=775</guid>
		<description><![CDATA[Why not give a little flair to your header.&#160; This tutorial will show you how to animate your header’s background image using jQuery to give your website that little extra something.

What We Are Building
We are going to build a header that animates it’s background.&#160; We will also encase the header in shadow for the little [...]]]></description>
			<content:encoded><![CDATA[<p>Why not give a little flair to your header.&#160; This tutorial will show you how to <strong>animate your header’s background image using jQuery</strong> to give your website that little extra something.</p>
<p><span id="more-775"></span></p>
<h3>What We Are Building</h3>
<p>We are going to build a header that animates it’s background.&#160; We will also encase the header in shadow for the little extra dramatic effect.</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/jQuery-Animated-Header/example.zip" target="_blank">Download</a><a class="Example" href="http://www.devirtuoso.com/Examples/jQuery-Animated-Header/" target="_blank">Example</a></div>
<p><a class="Example" href="http://www.devirtuoso.com/Examples/jQuery-Animated-Header/" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Animated Header Background" border="0" alt="Animated Header Background" src="http://www.devirtuoso.com/wp-content/uploads/2009/07/image29.png" width="583" height="265" /></a> </p>
<p>&#160;</p>
<h3>How it’s Going to Work</h3>
<p>The header background image is going to be super tall. Here is the important part, we’re making a header that is 300px tall.&#160; The image’s top 300px and bottom 300px have to be the same.&#160; This will allow us to scroll our header seamlessly.&#160; So dust of your Photoshop skills you’re going to need them.&#160; Not to fret, it’s not that difficult.&#160; Just copy the top 300px of your image and paste them on the bottom.&#160; Then blend what was originally on your background with what you pasted in.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Header Background Instructions" border="0" alt="Header Background Instructions" src="http://www.devirtuoso.com/wp-content/uploads/2009/07/image30.png" width="345" height="538" /> </p>
<p>&#160;</p>
<p>Now that we have our background image, we will also need to create a shadow overlay image. This will basically be a png with a transparent center that gradually turns to black on the edges.&#160; With the CSS we are going to lay this on top of our header to give a dramatic effect.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Header Overlay Diagram" border="0" alt="Header Overlay Diagram" src="http://www.devirtuoso.com/wp-content/uploads/2009/07/image31.png" width="412" height="251" /> </p>
<p>&#160;</p>
<p>After that it’s just a matter of animating the background image with jQuery so it scrolls.</p>
<h3>&#160;</h3>
<h3>Getting Started</h3>
<p>The first thing we’re going to need is the HTML in place.&#160; It’s pretty straight forward.&#160; We have a wrapper div to center the website, a header div for the animation, another div within the header for the shadow overlay, and finally divs for the navigation and body copy.&#160; It’s a lot of divs, but what do you expect, it’s the framework <img src='http://www.devirtuoso.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Here is the <strong>HTML</strong>:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Animated Header<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;wrapper&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;header&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Div is for Shadow Overlay--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Title --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span>Animated Header Background<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span>&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;nav&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Navigation Goes HERE --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;body&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Body Content Goes HERE --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span> &nbsp; &nbsp; <br />
<br />
<span class="sc-1">&lt;!-- Import jQuery--&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span>&nbsp; <br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>The CSS</h3>
<p>We aren&#8217;t going to do anything too difficult here. Here is a list of what was done:</p>
<ul>
<li>Center the website </li>
<li>Give the header a height and a background image </li>
<li>Style and position the text within the header </li>
<li>Create a shadow overlay </li>
<li>Give basic style to the header and navigation bar. </li>
</ul>
<p>Here is the <strong>CSS</strong>:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace">body<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#000</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Center the website */</span><br />
<span class="re0">#wrapper</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">920px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="nu0">0</span> <span class="kw2">auto</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Give the header a height and a background image */</span><br />
<span class="re0">#header</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">300px</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="re0">#000</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">background.jpg</span><span class="br0">&#41;</span> <span class="kw2">repeat-y</span> <span class="kw2">scroll</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">text-align</span><span class="sy0">:</span><span class="kw2">center</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Create a Shadow Overlay */</span> <br />
<span class="re0">#header</span> div<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">920px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">300px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">overlay.png</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw2">scroll</span> <span class="kw1">left</span> <span class="kw1">top</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Vertically position header text and style it*/</span><br />
<span class="re0">#header</span> h1<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding-top</span><span class="sy0">:</span><span class="re3">125px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">font-family</span><span class="sy0">:</span> Arial<span class="sy0">,</span> <span class="st0">&quot;MS Trebuchet&quot;</span><span class="sy0">,</span> <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="kw2">white</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Give basic styles to the body and the navigation */</span><br />
<span class="re0">#body</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span><span class="re0">#efefef</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">500px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#nav</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">35px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#111</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<p>Just a note, the png transparency won’t work in IE6.&#160; If you choose to optimize for IE6 you will need to add this piece of code to use the overlay.</p>
<p><strong>HTML</strong>:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc-1">&lt;!--[if lte IE 6]&gt;</span><br />
<span class="sc-1">&nbsp; &nbsp; &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; #header div{</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background-image: none;</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='overlay.png', sizingMethod='scale');</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; }</span><br />
<span class="sc-1">&nbsp; &nbsp; &lt;/style&gt;</span><br />
<span class="sc-1">&lt;![endif]--&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>The jQuery</h3>
</p>
<p>There are a couple ways of animating the background with jQuery.&#160; You can use the jQuery plugin that allows you to animate the CSS background-position attribute.&#160; This is the same plugin we used for <a title="How to create a table row highlighter using jQuery" href="http://www.devirtuoso.com/2009/06/how-to-create-a-table-row-highlighter-using-jquery/" target="_blank">making a table row highlighter in jQuery</a>. I opted not to use this as I found the performance was lagging.&#160; Instead I went with an interval that calls a function repeatedly.&#160; It’s a little uglier to look at but the performance is a lot better.</p>
<p>Here is the <strong>jQuery</strong>:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">var</span> scrollSpeed <span class="sy0">=</span> <span class="nu0">70</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; <span class="co1">// Speed in milliseconds</span><br />
<span class="kw2">var</span> step <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// How many pixels to move per step</span><br />
<span class="kw2">var</span> current <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// The current pixel row</span><br />
<span class="kw2">var</span> imageHeight <span class="sy0">=</span> <span class="nu0">4300</span><span class="sy0">;</span> &nbsp; &nbsp; <span class="co1">// Background image height</span><br />
<span class="kw2">var</span> headerHeight <span class="sy0">=</span> <span class="nu0">300</span><span class="sy0">;</span> &nbsp; &nbsp; <span class="co1">// How tall the header is.</span><br />
<br />
<span class="co1">//The pixel row where to start a new loop</span><br />
<span class="kw2">var</span> restartPosition <span class="sy0">=</span> <span class="sy0">-</span><span class="br0">&#40;</span>imageHeight <span class="sy0">-</span> headerHeight<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw2">function</span> scrollBg<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//Go to next pixel row.</span><br />
&nbsp; &nbsp; current <span class="sy0">-=</span> step<span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//If at the end of the image, then go to the top.</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>current <span class="sy0">==</span> restartPosition<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; current <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//Set the CSS of the header.</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#header'</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;background-position&quot;</span><span class="sy0">,</span><span class="st0">&quot;0 &quot;</span><span class="sy0">+</span>current<span class="sy0">+</span><span class="st0">&quot;px&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">//Calls the scrolling function repeatedly</span><br />
<span class="kw2">var</span> init <span class="sy0">=</span> setInterval<span class="br0">&#40;</span><span class="st0">&quot;scrollBg()&quot;</span><span class="sy0">,</span> scrollSpeed<span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>Bring it All Together</h3>
<p>That’s all there is to it.&#160; Here is the code all together.</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="sc0">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>Animated Header<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color: #000;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; /* Center the website */<br />
&nbsp; &nbsp; #wrapper{<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:920px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; margin:0 auto;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; /* Give the header a height and a background image */<br />
&nbsp; &nbsp; #header{<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:300px; <br />
&nbsp; &nbsp; &nbsp; &nbsp; background: #000 url(background.jpg) repeat-y scroll left top;<br />
&nbsp; &nbsp; &nbsp; &nbsp; text-align:center;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; /* Create a Shadow Overlay */ <br />
&nbsp; &nbsp; #header div{<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:920px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:300px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background: transparent url(overlay.png) no-repeat scroll left top;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; /* Vertically position header text and style it*/<br />
&nbsp; &nbsp; #header h1{<br />
&nbsp; &nbsp; &nbsp; &nbsp; padding-top:125px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; font-family: Arial, &quot;MS Trebuchet&quot;, sans-serif;<br />
&nbsp; &nbsp; &nbsp; &nbsp; color:white;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; /* Give basic styles to the body and the navigation */<br />
&nbsp; &nbsp; #body{<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color:#efefef;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:500px;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; #nav{<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:35px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background-color: #111;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<br />
<span class="sc-1">&lt;!--[if lte IE 6]&gt;</span><br />
<span class="sc-1">&nbsp; &nbsp; &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; #header div{</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background-image: none;</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='overlay.png', sizingMethod='scale');</span><br />
<span class="sc-1">&nbsp; &nbsp; &nbsp; &nbsp; }</span><br />
<span class="sc-1">&nbsp; &nbsp; &lt;/style&gt;</span><br />
<span class="sc-1">&lt;![endif]--&gt;</span><br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;wrapper&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;header&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Div is for Shadow Overlay--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span>Animated Header Background<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span>&nbsp; <br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;nav&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Navigation Goes HERE --&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;body&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Body Content Goes HERE --&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span> &nbsp; &nbsp; <br />
<br />
<span class="sc-1">&lt;!-- Import jQuery--&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">charset</span><span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span>&gt;</span><br />
<br />
&nbsp; &nbsp; var scrollSpeed = 70; &nbsp; &nbsp; &nbsp; // Speed in milliseconds<br />
&nbsp; &nbsp; var step = 1; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // How many pixels to move per step<br />
&nbsp; &nbsp; var current = 0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // The current pixel row<br />
&nbsp; &nbsp; var imageHeight = 4300; &nbsp; &nbsp; // Background image height<br />
&nbsp; &nbsp; var headerHeight = 300; &nbsp; &nbsp; // How tall the header is.<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; //The pixel row where to start a new loop<br />
&nbsp; &nbsp; var restartPosition = -(imageHeight - headerHeight);<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; function scrollBg(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; //Go to next pixel row.<br />
&nbsp; &nbsp; &nbsp; &nbsp; current -= step;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; //If at the end of the image, then go to the top.<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (current == restartPosition){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; current = 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; //Set the CSS of the header.<br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#header').css(&quot;background-position&quot;,&quot;0 &quot;+current+&quot;px&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; //Calls the scrolling function repeatedly<br />
&nbsp; &nbsp; var init = setInterval(&quot;scrollBg()&quot;, scrollSpeed);<br />
&nbsp; &nbsp; <br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span> &nbsp; <br />
<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<div class="resources"><a class="Download" href="http://www.devirtuoso.com/Examples/jQuery-Animated-Header/example.zip" target="_blank">Download</a><a class="Example" href="http://www.devirtuoso.com/Examples/jQuery-Animated-Header/" target="_blank">Example</a></div>
<p>&#160;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/07/how-to-build-an-animated-header-in-jquery/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How to Build a CSS Image Viewer the Clever Way</title>
		<link>http://www.devirtuoso.com/2009/07/how-to-build-a-css-image-viewer-the-clever-way/</link>
		<comments>http://www.devirtuoso.com/2009/07/how-to-build-a-css-image-viewer-the-clever-way/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 12:44:38 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=745</guid>
		<description><![CDATA[Image Viewers are fairly common on websites now-a-days. Most use some form of JavaScript to change images, some use Flash. This is a problem if the user doesn’t have either enabled on their browser.&#160; In this tutorial we’ll cover how to create an image viewer with only using CSS and HTML.

What We Are Building
We be [...]]]></description>
			<content:encoded><![CDATA[<p>Image Viewers are fairly common on websites now-a-days. Most use some form of JavaScript to change images, some use Flash. This is a problem if the user doesn’t have either enabled on their browser.&#160; In this tutorial we’ll cover how to create <strong>an image viewer with only using CSS and HTML</strong>.</p>
<p><span id="more-745"></span></p>
<h3>What We Are Building</h3>
<p>We be making a <strong>simple image viewer</strong> that has 4 tabs on the left and a main picture on the right.&#160; When the user clicks on one of the tabs it shows the new image.    </p>
<div class="resources"><a title="CSS Image Viewer Download" href="http://www.devirtuoso.com/Examples/CSS-Image-Viewer/CSS-Image-Viewer.zip" class="Download" target="_blank">Download</a><a title="CSS Image Viewer" href="http://www.devirtuoso.com/Examples/CSS-Image-Viewer/" target="_blank" class="Example">Example</a></div>
<p><a title="CSS Image Viewer" href="http://www.devirtuoso.com/Examples/CSS-Image-Viewer/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.devirtuoso.com/wp-content/uploads/2009/07/image27.png" width="563" height="363" /></a> </p>
<p>&#160;</p>
<h3>Prepping the Images</h3>
<p>First thing we’ll need are images.&#160; In this example I’ve used landscape images, but this could be promotional content, or whatever you like.&#160; I made the main image 500&#215;300, and the tabs 75&#215;125.&#160; I just picked a size for the main image, than divided the height by how many tabs I wanted. (e.g.. 300 / 4 = 75)&#160; This gives me the height of my tabs. The width of tab was arbitrary, I just resized the main image to the height of 75 and the width is whatever it falls at, in this case 125.</p>
<p>&#160;</p>
<h3>The Theory</h3>
<p>The theory behind how this is all going to work really isn’t that difficult.&#160; We’re going to use anchor tags to jump from one image to the next. This is much like a “Back to Top” link that jumps to the top of the page when you click on it.&#160; The only difference is the images are going to be scrolling within a div wrapper instead up jumping up and down the page.</p>
<p>&#160;</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.devirtuoso.com/wp-content/uploads/2009/07/image28.png" width="605" height="746" /> </p>
<p>&#160;</p>
<h3>The HTML</h3>
<p>The HTML itself is pretty simple.&#160; For the tabs it’s just an unordered list, with images inside of anchor tags. For the images they’re all wrapped in a div (this is important as we are going to hide the overflow so it only displays your selected image) Also each individual image is wrapped in a div along with a named anchor tag.&#160; These divs are there incase you want to use background images instead of regular images, we really don’t need them in this instance, they’re just there incase we change our mind.</p>
<p>Here is the <strong>HTML</strong>:</p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;wrapper&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Tabs --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#image1&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;tab1&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;tab1.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#image2&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;tab2&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;tab2.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#image3&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;tab3&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;tab3.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#image4&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;tab4&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;tab4.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- Images --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;images&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;image1&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;image1.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;image2&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;image2.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;image3&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;image3.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;image4&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;image4.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>The CSS</h3>
<p>What we’re going to do with the CSS is setup the tabs so they sit to the left and are stacked on top of one another.&#160; We’re also going to make it so the tabs originally sit at an opacity of 40%, then when a user rolls over the tab it will change to 100% opacity.&#160; Probably the most important part of the CSS will be for div wrapping the images.&#160; We just have to make sure the overflow is set to hidden.</p>
<p>Here is the <strong>CSS</strong>:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/* CSS Reset */</span><br />
&nbsp; &nbsp; <span class="sy0">*</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">outline</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/* Setup Tabs */</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; ul<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#000</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">125px</span><span class="sy0">;</span> <span class="coMULTI">/* Width of Tab Image */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-right</span><span class="sy0">:</span><span class="re3">8px</span> <span class="kw2">solid</span> <span class="kw1">black</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; ul li<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">75px</span><span class="sy0">;</span> <span class="coMULTI">/* Height of Tab Image */</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/* Setup Tab so normal opacity is 40 and rollover is 100 */</span><br />
&nbsp; &nbsp; ul li a img<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* for IE */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -ms-filter<span class="sy0">:</span><span class="st0">&quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=40)&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; filter<span class="sy0">:</span>alpha<span class="br0">&#40;</span>opacity<span class="sy0">=</span><span class="nu0">40</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* CSS3 standard */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; opacity<span class="sy0">:</span><span class="nu0">0.4</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/* Change Opacity to 100% on roll over */</span><br />
&nbsp; &nbsp; ul li a<span class="re2">:hover </span>img<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* for IE */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -ms-filter<span class="sy0">:</span><span class="st0">&quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=100)&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; filter<span class="sy0">:</span>alpha<span class="br0">&#40;</span>opacity<span class="sy0">=</span><span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* CSS3 standard */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; opacity<span class="sy0">:</span><span class="nu0">1.0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; <span class="coMULTI">/* Places images to the right of the tabs,<br />
&nbsp; &nbsp; and hides non selected images */</span><br />
&nbsp; &nbsp; <span class="re0">#images</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">500px</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">300px</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">overflow</span><span class="sy0">:</span><span class="kw2">hidden</span><span class="sy0">;</span> &nbsp;<span class="coMULTI">/* Hides the non selected images */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/* Places a black border around the entire viewer<br />
&nbsp; &nbsp; and centers it on the screen */</span><br />
&nbsp; &nbsp; <span class="re0">#wrapper</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">633px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">300px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">8px</span> <span class="kw2">solid</span> <span class="kw1">black</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="re3">0px</span> <span class="kw2">auto</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<h3>Putting it All Together</h3>
<p>The last thing we need to do is put the HTML and CSS together.&#160; Of course you change around the appearance of where the tabs sit and how many tabs there are.&#160; The important thing to take from this tutorial is the idea of using anchor tags as a means of switching images.</p>
<p>Here is all the code together:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace">&lt;!DOCTYPE html PUBLIC <span class="st0">&quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &lt;html<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &lt;head<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;meta http-equiv<span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw1">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=utf-8&quot;</span> /<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;title<span class="sy0">&gt;</span>Image Viewer&lt;/title<span class="sy0">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;style type<span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> media<span class="sy0">=</span><span class="st0">&quot;screen&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* CSS Reset */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">*</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">outline</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* Setup Tabs */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; ul<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#000</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">125px</span><span class="sy0">;</span> <span class="coMULTI">/* Width of Tab Image */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-right</span><span class="sy0">:</span><span class="re3">8px</span> <span class="kw2">solid</span> <span class="kw1">black</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; ul li<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">75px</span><span class="sy0">;</span> <span class="coMULTI">/* Height of Tab Image */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* Setup Tab so normal opacity is 40 and rollover is 100 */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ul li a img<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* for IE */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -ms-filter<span class="sy0">:</span><span class="st0">&quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=40)&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; filter<span class="sy0">:</span>alpha<span class="br0">&#40;</span>opacity<span class="sy0">=</span><span class="nu0">40</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* CSS3 standard */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; opacity<span class="sy0">:</span><span class="nu0">0.4</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* Change Opacity to 100% on roll over */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ul li a<span class="re2">:hover </span>img<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* for IE */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -ms-filter<span class="sy0">:</span><span class="st0">&quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=100)&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; filter<span class="sy0">:</span>alpha<span class="br0">&#40;</span>opacity<span class="sy0">=</span><span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* CSS3 standard */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; opacity<span class="sy0">:</span><span class="nu0">1.0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* Places images to the right of the tabs,<br />
&nbsp; &nbsp; &nbsp; &nbsp; and hides non selected images */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">#images</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">500px</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">300px</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">overflow</span><span class="sy0">:</span><span class="kw2">hidden</span><span class="sy0">;</span> &nbsp;<span class="coMULTI">/* Hides the non selected images */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span><span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* Places a black border around the entire viewer<br />
&nbsp; &nbsp; &nbsp; &nbsp; and centers it on the screen */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">#wrapper</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span><span class="re3">633px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span><span class="re3">300px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">8px</span> <span class="kw2">solid</span> <span class="kw1">black</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span><span class="re3">0px</span> <span class="kw2">auto</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/style<span class="sy0">&gt;</span><br />
<br />
&nbsp; &nbsp; &lt;/head<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &lt;body<span class="sy0">&gt;</span><br />
<br />
&nbsp; &nbsp; &lt;div id<span class="sy0">=</span><span class="st0">&quot;wrapper&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- Tabs --<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;ul<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;li<span class="sy0">&gt;</span>&lt;a href<span class="sy0">=</span><span class="st0">&quot;#image1&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;tab1&quot;</span><span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;tab1.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;/li<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;li<span class="sy0">&gt;</span>&lt;a href<span class="sy0">=</span><span class="st0">&quot;#image2&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;tab2&quot;</span><span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;tab2.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;/li<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;li<span class="sy0">&gt;</span>&lt;a href<span class="sy0">=</span><span class="st0">&quot;#image3&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;tab3&quot;</span><span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;tab3.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;/li<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;li<span class="sy0">&gt;</span>&lt;a href<span class="sy0">=</span><span class="st0">&quot;#image4&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;tab4&quot;</span><span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;tab4.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;/li<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/ul<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- Images --<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;div id<span class="sy0">=</span><span class="st0">&quot;images&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div<span class="sy0">&gt;</span>&lt;a name<span class="sy0">=</span><span class="st0">&quot;image1&quot;</span><span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;image1.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div<span class="sy0">&gt;</span>&lt;a name<span class="sy0">=</span><span class="st0">&quot;image2&quot;</span><span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;image2.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div<span class="sy0">&gt;</span>&lt;a name<span class="sy0">=</span><span class="st0">&quot;image3&quot;</span><span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;image3.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div<span class="sy0">&gt;</span>&lt;a name<span class="sy0">=</span><span class="st0">&quot;image4&quot;</span><span class="sy0">&gt;</span>&lt;/a<span class="sy0">&gt;</span>&lt;img src<span class="sy0">=</span><span class="st0">&quot;image4.jpg&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&quot;</span> /<span class="sy0">&gt;</span>&lt;/div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &lt;/div<span class="sy0">&gt;</span>&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &lt;/body<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &lt;/html<span class="sy0">&gt;</span></div></td></tr></tbody></table></div>
<p>&#160;</p>
<div class="resources"><a title="CSS Image Viewer Download" href="http://www.devirtuoso.com/Examples/CSS-Image-Viewer/CSS-Image-Viewer.zip" target="_blank" class="Download">Download</a><a title="CSS Image Viewer" href="http://www.devirtuoso.com/Examples/CSS-Image-Viewer/" target="_blank" class="Example">Example</a></div>
<p>&#160;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/07/how-to-build-a-css-image-viewer-the-clever-way/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>CSS Font Size Conversion Chart</title>
		<link>http://www.devirtuoso.com/2009/07/css-font-size-conversion-chart/</link>
		<comments>http://www.devirtuoso.com/2009/07/css-font-size-conversion-chart/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 02:04:16 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=716</guid>
		<description><![CDATA[Here is a chart that will help you find the conversion of pt,px,ems and %. The chart is good for an approximation, font size can change based on font, and operating system.
 




Points
Pixels
Ems
Percent


6pt
8px
0.5em
50%


7pt
9px
0.55em
55%


7.5pt
10px
0.625em
62.5%


8pt
11px
0.7em
70%


9pt
12px
0.75em
75%


10pt
13px
0.8em
80%


10.5pt
14px
0.875em
87.5%


11pt
15px
0.95em
95%


12pt
16px
1em
100%


13pt
17px
1.05em
105%


13.5pt
18px
1.125em
112.5%


14pt
19px
1.2em
120%


14.5pt
20px
1.25em
125%


15pt
21px
1.3em
130%


16pt
22px
1.4em
140%


17pt
23px
1.45em
145%


18pt
24px
1.5em
150%


20pt
26px
1.6em
160%


22pt
29px
1.8em
180%


24pt
32px
2em
200%


26pt
35px
2.2em
220%


27pt
36px
2.25em
225%


28pt
37px
2.3em
230%


29pt
38px
2.35em
235%


30pt
40px
2.45em
245%


32pt
42px
2.55em
255%


34pt
45px
2.75em
275%


36pt
48px
3em
300%



&#160;
For those of you who are still using pixels, it’s about time you made the switch to ems or points.&#160; It allows users [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a chart that will help you find the conversion of pt,px,ems and %. The chart is good for an approximation, font size can change based on font, and operating system.</p>
<p> <span id="more-716"></span>
</p>
<table border="0" cellspacing="0" cellpadding="5">
<tbody>
<tr class="even">
<th>Points</th>
<th>Pixels</th>
<th>Ems</th>
<th>Percent</th>
</tr>
<tr>
<td>6pt</td>
<td>8px</td>
<td>0.5em</td>
<td>50%</td>
</tr>
<tr class="even">
<td>7pt</td>
<td>9px</td>
<td>0.55em</td>
<td>55%</td>
</tr>
<tr>
<td>7.5pt</td>
<td>10px</td>
<td>0.625em</td>
<td>62.5%</td>
</tr>
<tr class="even">
<td>8pt</td>
<td>11px</td>
<td>0.7em</td>
<td>70%</td>
</tr>
<tr>
<td>9pt</td>
<td>12px</td>
<td>0.75em</td>
<td>75%</td>
</tr>
<tr class="even">
<td>10pt</td>
<td>13px</td>
<td>0.8em</td>
<td>80%</td>
</tr>
<tr>
<td>10.5pt</td>
<td>14px</td>
<td>0.875em</td>
<td>87.5%</td>
</tr>
<tr class="even">
<td>11pt</td>
<td>15px</td>
<td>0.95em</td>
<td>95%</td>
</tr>
<tr>
<td>12pt</td>
<td>16px</td>
<td>1em</td>
<td>100%</td>
</tr>
<tr class="even">
<td>13pt</td>
<td>17px</td>
<td>1.05em</td>
<td>105%</td>
</tr>
<tr>
<td>13.5pt</td>
<td>18px</td>
<td>1.125em</td>
<td>112.5%</td>
</tr>
<tr class="even">
<td>14pt</td>
<td>19px</td>
<td>1.2em</td>
<td>120%</td>
</tr>
<tr>
<td>14.5pt</td>
<td>20px</td>
<td>1.25em</td>
<td>125%</td>
</tr>
<tr class="even">
<td>15pt</td>
<td>21px</td>
<td>1.3em</td>
<td>130%</td>
</tr>
<tr>
<td>16pt</td>
<td>22px</td>
<td>1.4em</td>
<td>140%</td>
</tr>
<tr class="even">
<td>17pt</td>
<td>23px</td>
<td>1.45em</td>
<td>145%</td>
</tr>
<tr>
<td>18pt</td>
<td>24px</td>
<td>1.5em</td>
<td>150%</td>
</tr>
<tr class="even">
<td>20pt</td>
<td>26px</td>
<td>1.6em</td>
<td>160%</td>
</tr>
<tr>
<td>22pt</td>
<td>29px</td>
<td>1.8em</td>
<td>180%</td>
</tr>
<tr class="even">
<td>24pt</td>
<td>32px</td>
<td>2em</td>
<td>200%</td>
</tr>
<tr>
<td>26pt</td>
<td>35px</td>
<td>2.2em</td>
<td>220%</td>
</tr>
<tr class="even">
<td>27pt</td>
<td>36px</td>
<td>2.25em</td>
<td>225%</td>
</tr>
<tr class="even">
<td>28pt</td>
<td>37px</td>
<td>2.3em</td>
<td>230%</td>
</tr>
<tr>
<td>29pt</td>
<td>38px</td>
<td>2.35em</td>
<td>235%</td>
</tr>
<tr class="even">
<td>30pt</td>
<td>40px</td>
<td>2.45em</td>
<td>245%</td>
</tr>
<tr>
<td>32pt</td>
<td>42px</td>
<td>2.55em</td>
<td>255%</td>
</tr>
<tr class="even">
<td>34pt</td>
<td>45px</td>
<td>2.75em</td>
<td>275%</td>
</tr>
<tr>
<td>36pt</td>
<td>48px</td>
<td>3em</td>
<td>300%</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>For those of you who are still using pixels, it’s about time you made the switch to ems or points.&#160; It allows users who have a hard time reading small type to enlarge the font.&#160; Here is a little trick that will help you so you don’t have to remember the chart above.</p>
<p><div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace">body <span class="br0">&#123;</span> <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3"><span class="nu0">62.5</span>%</span> <span class="br0">&#125;</span></div></td></tr></tbody></table></div>
</p>
<p>This will make 1.0 em the same as 10px.&#160; So if you wanted 12 px. would be 1.2em, nice and easy.&#160; Hopefully this will help you out, I know I use it all the time.&#160; Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/07/css-font-size-conversion-chart/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Creating a CSS Image Preloader</title>
		<link>http://www.devirtuoso.com/2009/07/creating-a-css-image-preloader/</link>
		<comments>http://www.devirtuoso.com/2009/07/creating-a-css-image-preloader/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 22:13:13 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front End Development]]></category>
		<category><![CDATA[preloader]]></category>

		<guid isPermaLink="false">http://www.devirtuoso.com/?p=693</guid>
		<description><![CDATA[There are plenty of ways to create preloaders for your images, generally a lot of them use JavaScript to get things rolling. No longer are you shackled to JavaScript preloaders, with CSS you can preload your images with little to no hassle.

Why Use a Preloader
Why should you even consider using a preloader?  Have you ever [...]]]></description>
			<content:encoded><![CDATA[<p>There are plenty of ways to create preloaders for your images, generally a lot of them use JavaScript to get things rolling. No longer are you shackled to JavaScript preloaders, with <strong>CSS</strong> you can <strong>preload</strong> your images with little to no hassle.</p>
<p><span id="more-693"></span></p>
<h3>Why Use a Preloader</h3>
<p>Why should you even consider using a preloader?  Have you ever had a site where you roll over the navigation and there is a delay until the image is loaded….suck huh.  The preloader will help you with this.  It’ll load those images when the page loads and stores them in your browsers cache.  So when a user rolls over the nav, nice and smooth, no delay.</p>
<h3>The CSS</h3>
<p>The idea is to create a <strong>CSS style</strong> that sets up a bunch of background images, then hide it so you can’t see images.  These background images will be the images that you want to preload.</p>
<p>Here is a sample:</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">#preloader</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="coMULTI">/* Images you want to preload*/</span><br />
&nbsp; &nbsp; <span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span>image1.jpg<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span>image2.jpg<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span>image3.jpg<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">inline</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>Now this is just one way to hide your images so they don’t display.  I’ve also seen it where they shove the background image off the page by giving it a really large background position value. Or give a negative margin. There are plenty of ways to hide the images you are preloading, pick the way you’re most comfortable with.</p>
<h3>Alternative</h3>
<p>It doesn’t happen too often that you’ll have a HUGE image that needs to be downloaded, if you do it’s only common courtesy to give some sort of indication that the image is loading.  Here is some CSS that will give users a hint that the image is loading.</p>
<div class="codecolorer-container css " style="overflow:auto;white-space:nowrap;width:580px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace">img <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">loadingHourGlass.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="re3"><span class="nu0">50</span>%</span> <span class="re3"><span class="nu0">50</span>%</span><span class="sy0">;</span> <span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>The gif would be animated, something like the beach ball on Macs or the Hour glass on PCs.  Come up with an animation to let the user know something is happening.</p>
<h3>Conclusion</h3>
<p>Do your best to preload when it makes sense. Your users will love you for it.  Actually they probably won’t notice, but that’s a good thing, if they notice your site loading, it’s probably too slow.</p>
<h3><a href="http://www.devirtuoso.com/Examples/CSS-Preloader/" target="_blank" >Demo</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.devirtuoso.com/2009/07/creating-a-css-image-preloader/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
