Решил реализовать почти всю анимацию с помощью CSS3, а не jQuery.
Хром, ФФ, ИЕ10 порадовали стабильной работой (особенно ИЕ10 — очень приятно удивил). Опера же в очередной раз разочаровала своими необъяснимыми заскоками.
Вот небольшой пример
jsfiddle.net/3nnRg/1/
Все вышеупомянутые браузеры отображают плавно расходящиеся концентрические окружности. Опера же в определенный момент решает, что окружностей и так достаточно и не обязательно их все анимировать, поэтому она просто останавливает анимацию на 100% и на начальный кадр анимации не возвращается, несмотря на animation-duration infinite. При чем анимировать она может не все аттрибуты: чаще всего окружность застывает с максимальным размером и opacity = 1.0, хотя прозрачность должна уменьшаться до 0.0. В случае если в анимации указаны не два кадра (0% и 100%), а больше (например, 0% 80% 100%), то может застрять на каком-то из промежуточных.
Хуже того, что анимация у меня используется не просто как декоративный элемент, а на ней основывается функционал сайта. Например, скрытие / появление секций сайта реализовано так же через анимации, и если Опере вздумается не продолжать анимацию, то событие animationend так же не генерируется и сайт просто перестает функционировать.
Был уверен, что раз анимация в Опере реализована более года назад, да еще и поддерживается сейчас без вендорных префиксов, то все будет работать корректно. Ан-нет. Теперь просто непонятно, что делать. Делать fallback на jQuery очень не хотелось, так как теряется вся суть затеи.
Кто-нибудь вообще с таким сталкивался, и если да, то как решали и решили ли?