Estoy escribiendo un programa htc ligero para IE 9 (= javascript). CSS3 tiene una nueva propiedad llamada transición, pero no funciona en IE 9. Estoy tratando de implementar esto, pero necesito saber cuándo cambia una propiedad. Estoy familiarizado con DOMAttrModified y onpropertychange, pero no se activan si CSS cambia la propiedad:

a {
color:#FFF;
}

a:hover {
color:#000;
}

Si pasa el mouse sobre un ancla, DOMAttrModified no hace nada. Podría usar mouseover, mouseout, blur, focus, activar y desactivar y verificar cada vez que ocurran si una propiedad cambia, pero qué pasa si:

div:hover a {
color:#FFF;
}

El usuario no desplazó la etiqueta de anclaje, pero CSS cambió el color de todos modos. Creo que pie.htc tiene el mismo problema. Solo necesito una solución compatible con IE 9 ... ¡Gracias!

6
bopjesvla 19 jul. 2011 a las 18:17

3 respuestas

La mejor respuesta

No creo que haya un evento para "onCSSChange"

¿Qué tal si ejecuta una subrutina cada 50 ms y verifica el estilo actual? Si el CSS cambia, puede activar su propio evento.

1
Jeff 19 jul. 2011 a las 20:52

Creo que filtro de matriz podría ayudarlo .

Además, recomiendo Transformaciones CSS animadas entre navegadores, incluso en IE

0
Molecular Man 20 jul. 2011 a las 06:37

Un navegador más simple y cruzado sería para el usuario Modernizr o una aplicación de JavaScript similar para probar la capacidad del navegador de preformar transition, si no puede, agregará un nombre de clase al elemento raíz, al que puede apuntar fácilmente con jQuery o un marco similar:

$('.notransition div').hover(function() {
    $a = $(this).find('a');
    //Then animate $a.
}, function() { ... });

De esa manera, puede usar la propiedad nativa si es posible, y si no, recurrir a jQuery.

0
Madara's Ghost 30 ago. 2011 a las 16:15