"Limits the artwork" in the sense the middle portion of all you images must be a stretched background slice, so you can't reproduce all the subtle affects of switching images. You have to produce the end caps from a sliced piece of artwork so this sort of tosses out a lot of high quality graphics.
I saw an example somewhere that used the "hover" compound event in jQuery to toggle between two classes, one representing the normal state button image and the other the roll over image. You can use hover to toggle the a '.hiddenl class that would contain a display: none. If I was smarter I could just write this myself. From: jquery-en@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Glen Lipka Sent: Tuesday, July 24, 2007 6:56 PM To: jquery-en@googlegroups.com Subject: [jQuery] Re: 3 state buttons - is there a best way What is nasty? The sprite technique is pretty popular specifically because it eliminates flicker and doesnt require javascript. Im not sure what you mean by "limits the artwork" either. Seems pretty easy to make anything. Normally, I am all for the jQuery method, but this one seems off. Glen On 7/24/07, Mitchell Waite <[EMAIL PROTECTED]> wrote: Yuk that is nasty. First it limits the artwork in a major way. You want to be able to create an image for each state. And it is far more work to make the graphic on that site then it is to make nice arty images of the 3 state buttons. You can find free button graphics all over the net. John: Your adding a class to make the states change. So that implies the images are defined in the CSS. Would it not be much easier to make this three containers on top of each other, each with its own graphic, and just alter the visibility of the div? Here is what I had in mind. The only problem with it I see is that there is flicker when you get the hover state. The problem is that a mouseovers are being sent when you move the mouse a tiny bit. I could not think of a way to stop that other then delaying the period of time the hover state is on a few hundred milliseconds. http://www.whatbird.com/wwwroot/3StateButton.html The code <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml "> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery 3 State Button</title> <script src="js/jquery.js" type="text/javascript"></script> <script type="text/jscript"> $(document).ready(function(){ /* testing mouse events in jQuery */ $("#normal").show(); $("#hover").hide(); $("#down").hide(); /* show top layer hover */ $('#normal').mouseover(function(){ $("#hover").show(); }); /* hide top layer hover */ $('#normal').mouseout(function(){ $("#hover").hide(); $("#normal").show(); }); /* */ $('#normal').click(function(){ $("#hover").hide(); $("#down").show(); $("#normal").hide(); }); }); </script> <style type="text/css"> <!-- #hover { position:absolute; width:94px; height:32px; z-index:3; left: 174px; top: 45px; } #normal { position:absolute; width:94px; height:32px; z-index:2; left: 174px; top: 45px; } #down { position:absolute; width:94px; height:32px; z-index:1; left: 174px; top: 45px; } --> </style> </head> <body> <table width="363" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="94"> <div id="normal"><img src="images/b_normal.gif" width="93" height="29" /></div> <div id="hover"><img src="images/b_hover.gif" width="93" height="29" /></div> <div id="down"><img src="images/b_down.gif" width="93" height="29" /></div></td> </tr> </table> </body> </html> From: jquery-en@googlegroups.com [mailto: <mailto:jquery-en@googlegroups.com> [EMAIL PROTECTED] On Behalf Of Glen Lipka Sent: Tuesday, July 24, 2007 4:13 PM To: jquery-en@googlegroups.com Subject: [jQuery] Re: 3 state buttons - is there a best way Is there a reason why not to use pure CSS for this? http://www.commadot.com/jquery/buttons/ I use this method for buttons alot. No flicker. Tested in IE6/7, FF, Safari. John, in your example you can't have div.buttons.hover. That doesn't work in IE6 unfortunately. I WISH it did. (http://commadot.com/?p=528) Glen On 7/24/07, Mitchell Waite <[EMAIL PROTECTED]> wrote: Can anyone point me in the best direction for setting up a three state button using images (up, down and hover). I can imagine a lot of different ways to do it. Each button should be unique (have its own ID).