Огонь, если стиль CSS был изменен пользователем? - PullRequest
6 голосов
/ 19 июля 2011

Я пишу облегченную программу htc для IE 9 (= javascript).У CSS3 есть новое свойство с именем transition, но оно не работает в IE 9. Я пытаюсь реализовать это, но мне нужно знать, когда свойство изменяется.Я знаком с DOMAttrModified & onpropertychange, но они не срабатывают, если CSS изменяет свойство:

a {
color:#FFF;
}

a:hover {
color:#000;
}

Если при наведении курсора на якорь, DOMAttrModified ничего не делает.Я мог бы использовать наведение мыши, размытие, размытие, фокусировку, активацию и деактивацию и проверять каждый раз, когда они происходят, если свойство изменилось, но что если:

div:hover a {
color:#FFF;
}

Пользователь не поместил тег привязки, а CSSв любом случае изменил цвет.Я думаю, что pie.htc имеет ту же проблему.Мне нужно только решение, совместимое с IE 9 ... Спасибо!

Ответы [ 3 ]

1 голос
/ 20 июля 2011

Не думаю, что есть событие для "onCSSChange"

Как насчет запуска подпрограммы каждые 50 мс и проверки текущего стиля.Если CSS изменится, вы можете запустить собственное событие.

0 голосов
/ 30 августа 2011

Более простым и более кроссбраузерным будет пользователь Modernizr или аналогичное приложение javascript для проверки способности браузера предварительно выполнять transition, если это невозможно, он добавитимя класса для корневого элемента, который вы можете легко нацелить с помощью jQuery или аналогичного фреймворка:

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

Таким образом, вы можете использовать нативное свойство, если это возможно, и, если нет, отступление к jQuery.

0 голосов
/ 20 июля 2011
...