5

Por lo tanto, es oficial: odio Internet Explorer. Sí, todas las versiones sangrientas de eso. :-DjQuery usando .animate() no hace NADA en IE8

Entonces, no pensé que estaba haciendo algo complicado aquí, pero aparentemente lo estoy. Tengo un montón de elementos de la lista en una lista desordenada diseñada para un menú de navegación, y en Firefox, Chrome, Safari y Opera, las cosas funcionan bien. Lo que se supone que debe suceder es que al pasar un elemento de navegación, debe animar el crecimiento y animar un cambio de color de fondo.

No ocurre nada en Internet Explorer 7/8.

Creo que solo está vinculado a la función animada, ya que si cambio .animate con .css, funciona.

http://project-cypher.net/wtf/ (* url eliminado - problema resuelto)

ideas?

+0

Teh codez parece ser esta: http://pastebin.com/zjmrS9wJ –

+7

'Entonces, es oficial: odio Internet Explorer. Sí, todas las versiones sangrientas de eso. ¿Qué te tomó tanto tiempo? –

+0

@ Lucas Jones: Sí, ese es el javascript que engancha el evento de desplazamiento y anima el elemento de anclaje. ¿Me perdí algo o me enviaste una corrección a lo que escribí? – Cypher

Respuesta

3

Cambiar las propiedades de animación un poco usando backgroundColor, paddingTop y paddingBottom, esto debería funcionar:

$('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); 
}); 

Este CSS:

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

Gracias, eso me acerca. El color de fondo ahora se desvanece como debería. El relleno aún no se está aplicando ... He intentado como lo has escrito, también intenté encapsular el valor en comillas simples ... hasta ahora nada. – Cypher

+0

Cypher - ¿Solo en IE8? Probé, trabajando aquí en IE8 ... –

+0

@Nick - Sí, no hay dados en IE7/8, bueno en otros navegadores. Estoy usando jQuery 1.4.2. No puedo recordar la versión del complemento de color que anula .animate(), pero lo descargué hace unos días. Tal vez intente obtener una copia nueva, no minificada ... – Cypher

0

Si cambio el 'relleno': '6px 12px' a 'relleno': '12px' parece que funciona. ¿Puedes probar esto e informar si no funciona en tu extremo?

No es perfecto pero hace algo, y te acerca un poco más para arreglarlo.

EDITAR: Dang, me pregunto por qué no. Trabajó aquí. IE8. IDK, tal vez tengas la solución de la otra respuesta.

+0

Hrm, eso no parece funcionar en IE8. No probé en 7 ...:) – Cypher

1

me encontré con este problema a mí mismo, el otro día. No pude entender por qué IE no animaba correctamente los objetos.

La respuesta es simple, sin embargo: utilizar jQuery UI

jQuery UI incluye un plug-in de color mejorada que realmente funciona .

Echa un vistazo a las otras cosas interesantes en jQuery UI, mientras estás en ello - los botones, cuadros de diálogo, barras, etiquetas, etc. progresar

+0

Buen enchufe. Realmente no tuvo nada que ver con eso, pero gracias de todos modos. – Cypher

+0

Lo hace. jQuery UI tiene un complemento de color que permite usar backgroundColor en 'animate'. –