Используйте обнаружение функций даже до того, как попытаетесь запустить анимацию.
var div = document.createElement("DIV");
div.style["animation"] = "animName 5s infinite";
div.style["WebkitAnimation"] = "animName 5s infinite";
if (div.style["animationDuration"] == "5s") {
// Supports animation
} else (div.style["WebkitAnimationDuration"] == "5s") {
// Supports -webkit-animation
}
Этот тест проверяет способность браузера устанавливать отдельные атрибуты стиля, используя стенографию.Если вы просто установите значение и прочитаете его таким же образом, вы получите ложные срабатывания.
РЕДАКТИРОВАТЬ: Извините, неправильно понял проблему.
Что касается использования событий для проверки вещи, вывероятно, придется подождать несколько миллисекунд, независимо от того, что вы делаете ... Вы можете проверить сами определения стилей, используя document.styleSheets, но это будет довольно утомительно, в зависимости от специфики css.
var animationName = "";
for (var i = 0; i < document.styleSheets.length; ++i) {
var sheet = document.styleSheets[i];
var rules = sheet.cssRules || sheet.rules;
for (var j = 0; j < rules.length; ++j) {
var rule = rules[j];
if (theElement.matchesSelector(rule.selectorText)) {
var theStyle = rule.style;
animationName = theStyle["WebkitAnimationName"];
}
}
}
Это довольно грубый способ сделать это, я знаю ...