在 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 行为?