Tuve el mismo problema el otro día. Por extraño que parezca, parecía estar bien en FF, pero parpadearía en IE, Chrome y, a veces, Safari. La solución es usar una hoja de sprite css. Usted crea una imagen que tiene ambos fondos uno al lado del otro. Solo muestra una parte de la hoja de fondo. puedes alternar ajustando el margen en el fondo. Puede manejar los ajustes de margen usando addClass y removeClass. A continuación se muestra el código, ver aquí para un violín: http://jsfiddle.net/fMhMY/
CSS
.navButton span{
width:32px;
height:32px;
display:block;
}
a.leftButton span, a#leftButton span{
background-image:url(Prev.png);
background-position:-64px 0px;
}
/*nav button sprites */
/*sprite order is pushed, hover, natural */
a.leftButton.navOver span, a.rightButton.navOver span{
background-position:-32px 0px;
}
a.leftButton.navPressed span, a.rightButton.navPressed span{
background-position:0px 0px;
}
HTML
<div style='display:inline-block'>
<a href="javascript:void(0);" class="leftButton navButton" id='lefty'>
<span></span>
</a>
</div>
jQuery
$('.leftButton').mousedown(function() {
$('.leftButton').addClass('navPressed');
console.log('mousedown');
});
$('.leftButton').mouseup(function() {
$('.leftButton').removeClass('navPressed');
console.log('mouseup');
});
$('.leftButton').hover(function() {
$('.leftButton').addClass('navOver');
console.log('hover');
});
$('.leftButton').mouseout(function() {
$('.leftButton').removeClass('navPressed').removeClass('navOver');
console.log('mouseout');
});
W ¿Está configurando la pantalla y los atributos z-index cada vez que quiere actualizar la imagen de fondo? Mejor también los atributos de visualización y z-index para su CSS. También z-index: 50px no es válido. z-index toma un valor entero. – Lowkase
¿tiene una captura de pantalla? – Grigor
¿Estás precargando tus imágenes? De lo contrario, el parpadeo podría ser mientras el navegador está descargando. –