5

Quindi, è ufficiale: odio Internet Explorer. Sì, tutte le versioni sanguinarie. :-DjQuery utilizzando .animate() non riesce a fare QUALCUNO in IE8

Quindi, non pensavo che stavo facendo qualcosa di complicato qui, ma a quanto pare sono. Ho un sacco di elementi di elenco in una lista non ordinata in stile per un menu di navigazione, e in Firefox, Chrome, Safari e Opera, le cose funzionano bene. Ciò che dovrebbe accadere è quando si posiziona un oggetto di navigazione, dovrebbe animare un po 'di crescita e animare un cambio di colore di sfondo.

Non succede nulla in Internet Explorer 7/8.

Penso che sia solo legato alla funzione di animazione, poiché se si scambia .animate con .css, funziona.

http://project-cypher.net/wtf/ (* URL rimosso - problema risolto)

idee?

+0

Teh codez sembra essere questo: http://pastebin.com/zjmrS9wJ –

+7

'Quindi, è ufficiale: odio Internet Explorer. Sì, tutte le versioni sanguinarie di esso. Cosa ti ha fatto perdere così tanto tempo? –

+0

@ Lucas Jones: Sì, questa è la javascript che aggancia l'evento hover e anima l'elemento di ancoraggio. Mi sono perso qualcosa o hai presentato una correzione a ciò che ho scritto? – Cypher

risposta

3

Cambia i tuoi proprietà di animazione un po 'utilizzando backgroundColor, paddingTop e paddingBottom, questo dovrebbe funzionare:

$('ul.navigation li a').css('padding','0px 12px'); 
$('ul.navigation li a').hover(function() { 
    $(this).stop().animate({ 
     backgroundColor : '#336699', 
     'padding-top': 6, 
     'padding-bottom': 6 
    }, 150); 
}, function() { 
    $(this).stop().animate({ 
     backgroundColor: '#660000', 
     paddingTop: 0, 
     paddingBottom: 0 
    }, 150); 
}); 

Questo CSS:

ul.navigation li a { 
    padding: 6px 12px; 
    color: #fff; 
    text-decoration: none; 
    background: #600; 
} 
+0

Grazie, mi avvicina. Il colore di sfondo ora si apre e si spegne come dovrebbe. Il padding non si sta ancora applicando però ... Ho provato come lo hai scritto, anche provato a incapsulare il valore tra virgolette singole ... finora nulla. – Cypher

+0

Cypher - Solo in IE8? Ho provato, lavorando qui in IE8 ... –

+0

@Nick - Sì, nessun dado in IE7/8, buono con altri browser. Sto usando jQuery 1.4.2. Non ricordo la versione del plug-in che sovrascrive .animate(), ma l'ho scaricato pochi giorni fa. Forse cercherò di afferrare una copia nuova e non minuscola ... – Cypher

0

Se cambio il 'padding': '6px 12px' a 'padding': '12px' sembra funzionare. Puoi provare questo e segnalare se non funziona sulla vostra parte?

Non è perfetto ma fa qualcosa e ti avvicina un po 'a ripararlo.

EDIT: Dang, chiedo perché no. Lavorato qui IE8. IDK, forse hai la soluzione dall'altra risposta.

+0

Hrm, sembra non funzionare in IE8. Non ho provato in 7 ...:) – Cypher

1

mi sono imbattuto in questo problema io stesso, l'altro giorno. Non riuscivo a capire perché IE non animasse correttamente gli oggetti.

La risposta è semplice, però: usa jQuery UI

jQuery UI include un plugin colore migliorato che funziona realmente.

Scopri le altre cose ordinate in jQuery UI, mentre ci sei - pulsanti, finestre di dialogo, barre di avanzamento, le schede, ecc

+0

Plug simpatico. Non avevo davvero niente a che fare con questo, ma grazie comunque. – Cypher

+0

Lo fa. L'interfaccia utente di jQuery ha un plug-in a colori che consente di utilizzare backgroundColor in 'animate'. –