Нет необходимости предварительно загружать изображения. Я не могу понять, почему 99% людей думают, что эффекты наведения должны использовать 2 изображения. В этом нет необходимости, а использование двух изображений делает его плохим.
Единственное хорошее решение, которое я знаю, - это использовать CSS для элементов A (или простой JS для всех остальных кнопок). Когда кнопка нас зависла, установите background-position для некоторого смещения.
a { display:block; width:160px; height:26px; background:url(b_tagsdesc.png); }
a:hover { background-position:0 26px }
Вот и все, используемое изображение вы можете увидеть ниже:

(источник: margonem.pl )
Редактировать: Вы также можете использовать его по-другому. Вместо того, чтобы переключать изображение, вы можете скрыть свое изображение. Таким образом, отправной точкой будет «background-position: 0 -100px» и при наведении курсора «0 0».
Эта техника называется CSS-спрайтами - вот хорошее описание: http://css -tricks.com / css-sprites /