I am looking for a way to animate my sprites with jquery. When I hover over the image, it fades in. then when I hover off. it fades out.
CSS:
nav ul { position: relative; z-index: 1000; margin: -26px 0 0 11px; overflow: hidden; }
nav ul li { display: inline; }
nav ul li a { background: url(../images/nav-sprite.png); display: block; float: left; text-indent: -999px; margin: 0 auto; width: 667px; }
nav ul a#nav-1 { background-position: 0 0; height: 48px; width: 103px; }
nav ul a#nav-2 { background-position: -103px 0; height: 48px; width: 129px; }
nav ul a#nav-3 { background-position: -234px 0; height: 48px; width: 156px; }
nav ul a#nav-4 { background-position: -392px 0; height: 48px; width: 147px; }
nav ul a#nav-5 { background-position: -541px 0; height: 48px; width: 124px; }
nav ul a#nav-1:hover { background-position: 0 48px; }
nav ul a#nav-2:hover { background-position: -103px 48px; }
nav ul a#nav-3:hover { background-position: -234px 48px; }
nav ul a#nav-4:hover { background-position: -392px 48px; }
nav ul a#nav-5:hover { background-position: -541px 48px; }
There’s nothing specific to sprites in this question. You can always use the usual method, combining the
hoverevent with thefadeTofunction to get the opacity animation you need.If you need to, you can also add a CSS fallback:
See it working live here: http://www.jsfiddle.net/yijiang/CNC6W/
Well, it’s simple to fix – try adding a background to the
ulelement, then giving it aborder-radiusto make sure the rounded corners stay.You might also want to increase the starting opacity from 0.4 to something higher, and the duration to something lower than 300.