Domanda

Ho un pulsante di cui voglio cambiare lo sfondo per mostrare che è disabilitato quando un utente fa clic su di esso. Funziona bene in IE / FF ma in Chrome sembra che non riesca a trovare l'immagine di sfondo e non faccia nulla allo sfondo.

alt text

Sto solo facendo un semplice set CSS in jQuery 1.2.6

$(".CheckoutBt").css("background-image", "url(/Portals/_default/images/buttons/checkout-end-disabled.gif)");
È stato utile?

Soluzione

Ok, sono riuscito a rintracciare il problema. Come ha detto tvanfosson, è perché WebKit non sta scaricando le immagini. Per ovviare a questo, ho caricato entrambe le immagini nella classe non cliccata

<style>
.unclicked {
 background-image: url('/Portals/_default/images/buttons/checkout-end-disabled.gif');
 background-image: url('/Portals/_default/images/buttons/checkout-end.gif');
}
.clicked {
   background-image: url('/Portals/_default/images/buttons/checkout-end-disabled.gif');
}
</style>

Altri suggerimenti

Il modo in cui vorrei affrontare questo è con le classi. Disponi di classi CSS separate per ciascuno degli stati dei pulsanti, quindi utilizza semplicemente jQuery per modificare la classe del pulsante. Ciò garantirebbe che tutte le immagini siano effettivamente scaricate e disponibili quando imposti la classe, che è dove penso che Chrome non riesca (probabilmente tutti i browser WebKit lo farebbero).

<style>
.unclicked {
 ...
}
.unclicked :hover {
 ...
}
.clicked {
   background-image: url('/Portals/_default/images/buttons/checkout-end-disabled.gif');
}
</style>
...
$(".CheckoutBt").click( function() {
    $(this).removeClass('unclicked').addClass('clicked');
    ...do what ever action...
});

Invece di " immagine di sfondo " usa " backgroundImage "

Prova l'intero " background " ;, " url (/Portals/_default/images/buttons/checkout-end-disabled.gif) 0 0 no-repeat " ;.

Suggerirei anche di consolidare tutte le immagini di sfondo in un'unica immagine in questo modo . Quindi utilizzare gli offset position-background per eseguire gli effetti di rollover. Puoi sfruttare ulteriormente questa tecnica creando un'immagine di pulsante molto lunga (con sia lo stato normale che di rollover in essa) e allineala a sinistra e a destra per produrre le tue "porte scorrevoli".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top