JavaScript では、これは次のように記述できます。
var state = 0;
setTimeout(function keyFrames () {
fooElement.style.backgroundPosition = '0 -' + (10*state++) + 'px';
if (state === 2) {
state = 0;
}
setTimeout(keyFrames, 500);
}, 500);
CSS3 キーフレームは、非常によく似た機能を提供します。
@keyframes foo { 0% { background-position: 0 0; } 50% { background-position: 0 -10px; } 100% { background-position: 0 -20px; } }
#fooElement { transition: foo 1500ms linear infinite; }
違いは、CSS トランジションがタイミング機能を利用することです。CSS を使用して正確な JavaScript の動作を再現する方法はありますか?