您可以使用 CSS linear-gradient 属性,然后运行动画循环来改变它的变化位置。这是一个快速的JS Fiddle 显示效果。
基本思想是根据动画进度设置CSS。例如,使用渐变为透明的白色背景,在完成 25% 时,您将拥有:
background: linear-gradient(to right,
rgba(255, 255, 255, 1) 0%,
rgba(255, 255, 255, 0.25) 25%,
rgba(255, 255, 255, 0) 100);
在后续步骤中,将 0.25 和 25% 更改为当前进度百分比。小提琴中的 Javascript 看起来像:
var $child = $('#child');
var steps = 100;
var interval = 20;
var step = 0;
var animationStep = function() {
if( step >= steps ) return;
++step;
var progress = step / steps;
var progressPercent = Math.floor(progress*100) + '%';
$child.css('background',
'linear-gradient(to right, ' +
'rgba(255,255,255,1) 0%, ' +
'rgba(255,255,255,' + progress + ') ' + progressPercent + ', ' +
'rgba(255,255,255,0) 100%)'
);
setTimeout(animationStep, interval);
};
animationStep();
您可以将其调整为在颜色、重用多个元素等方面更通用,但这应该为您提供基本概念。