В CSS3 есть опция непрозрачности.Таким образом, вам не придется перезагружать изображение, когда оно находится над чем-то.
#div {
background-image: url('blah.png');
}
#div:hover {
opacity: 0.5;
}
Я не совсем уверен, правильно ли это использовать, поэтому вам следует использовать Google для большего количества примеров.Однако вы должны быть осторожны, потому что еще не все браузеры могут поддерживать CSS3.