На первые 2 вопроса отвечает spec .
Для цикла: animation-iteration-count: infinite;
И циклический цвет фона требует указания правила @keyframes
.
body { background: #0ff; }
@-webkit-keyframes blink {
0% { background: rgba(255,0,0,0.5); }
50% { background: rgba(255,0,0,0); }
100% { background: rgba(255,0,0,0.5); }
}
@keyframes blink {
0% { background: rgba(255,0,0,0.5); }
50% { background: rgba(255,0,0,0); }
100% { background: rgba(255,0,0,0.5); }
}
#animate {
height: 100px;
width: 100px;
background: rgba(255,0,0,1);
}
#animate {
-webkit-animation-direction: normal;
-webkit-animation-duration: 5s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-name: blink;
-webkit-animation-timing-function: ease;
animation-direction: normal;
animation-duration: 5s;
animation-iteration-count: infinite;
animation-name: blink;
animation-timing-function: ease;
}
(не забывайте любые применимые префиксы поставщиков!)
Что касается поддержки браузеров, я не могу рассказать вам о специфике, но в любом случае я бы порекомендовал функцию обнаружения через modernizr и резервный javascript.
Вот пример , который работает в webkit и отвечает по крайней мере некоторым вашим требованиям. ПРИМЕЧАНИЕ: я не использую Mac, поэтому я не был уверен в специфике эффекта, на который вы ссылались.