Reputation: 763
I'm writing a lightweight htc program for IE 9 (Javascript). CSS3 has a new property called transition, but it doesn't work in IE 9. I'm trying to implement this, but I need to know when a property changes. I'm familiar with DOMAttrModified
and onpropertychange
, but they don't trigger if CSS changes the property:
a {
color:#FFF;
}
a:hover {
color:#000;
}
If you mouseover an anchor, DOMAttrModified
doesn't do anything. I could use mouseover
, mouseout
, blur
, focus
, activate
and deactivate
and check every time they occur if a property changed, but what if:
div:hover a {
color:#FFF;
}
The user didn't hover the anchor tag, but CSS changed the color anyway. I think pie.htc has the same problem. I only need a solution compatible with IE 9...
Upvotes: 6
Views: 527
Reputation: 174957
A simpler and more cross browser would be to user Modernizr or a similar javascript application to test for the browser's ability to preform transition
, if it cannot, it will add a class name to the root element, which you can target easily with jQuery or a similar framework:
$('.notransition div').hover(function() {
$a = $(this).find('a');
//Then animate $a.
}, function() { ... });
That way you can use the native property if possible, and if not, fallback to jQuery.
Upvotes: 0
Reputation: 22386
I think matrix filter might help you.
Additionally, I recommend Cross-Browser Animated CSS Transforms — Even in IE
Upvotes: 0
Reputation: 2808
I don't think there's an event for "onCSSChange"
How about running a subroutine every 50 ms and checking the current styling. If the CSS changes, you can fire your own event.
Upvotes: 2