var progress = 0;
setInterval(function() {
document.querySelector('#progress').setAttribute('width', ((progress++) % 100) + '%');
}, 50);
#track {
position: absolute;
top: 25%;
height: 50%;
width: 100%;
}
html,
body {
margin: 0px;
padding: 0px;
height: 100%;
background: #87e0fd;
background: -moz-linear-gradient(top, #efefef 0%, #aaa 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #efefef), color-stop(100%, #aaa));
background: -webkit-linear-gradient(top, #efefef 0%, #aaa 100%);
background: -o-linear-gradient(top, #efefef 0%, #aaa 100%);
background: -ms-linear-gradient(top, #efefef 0%, #aaa 100%);
background: linear-gradient(to bottom, #efefef 0%, #aaa 100%);
filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#efefef', endColorstr='#aaa', GradientType=0);
}
<svg id="track">
<defs>
<filter id="color-change">
<feColorMatrix values="
-2 0 0 0 1
0 -2 0 0 1
0 0 -2 0 1
0 0 0 0 1
" />
</filter>
<mask id="mask">
<image id="wave" xlink:href="http://w1.sndcdn.com/ZnIW9DSkAhPU_m.png" width="100%" height="100%" filter="url(#color-change)" preserveAspectRatio="none" />
</mask>
</defs>
<image x="0" y="0" height="100%" width="100%" xlink:href="https://lh4.googleusercontent.com/-ls_ukHfuaGg/U7cdwhR1OMI/AAAAAAAALQ4/ZxHrgkz9fH8/s506/Capture+du+2014-07-04+23%3A31%3A40.png" preserveAspectRatio="none" mask="url(#mask)" />
<rect id="progress" x="0" y="0" height="100%" fill="rgba(255,0,0,.5)" mask="url(#mask)" />
</svg>