JS1K

#2: the original

Source description for demo by NickyOne.

var nblines=300; var compteur=0; var width=300; // Sinus 1 var sin_position_x=1 ; var sin_amplitude_x=-0.1 ; var frequence=0.9 ; var ecart_x=0.05 ; var multiplicateur_x=20 ; // Sinus 2 var sin_position_x2=1 ; var sin_amplitude_x2=-0.3 ; var frequence2=0.1 ; var ecart_x2=0.03 ; var multiplicateur_x2=25 ; var nombre_div=300; var divx=100 ; function init() { setTimeout("movedivs()",frequence); } function movedivs() { var decalex=0 ; for(var i=0; i<nombre_div;i++){ document.getElementById("div"+i).style.left=divx+decalex+Math.round((Math.sin(sin_position_x-(i*ecart_x))*multiplicateur_x)+(Math.sin(sin_position_x2-(i*ecart_x2))*multiplicateur_x2))+"px"; document.getElementById("divdiv"+i).style.left=divx+decalex+Math.round((Math.cos(sin_position_x-(i*ecart_x))*multiplicateur_x)+(Math.cos(sin_position_x2-(i*ecart_x2))*multiplicateur_x2))+"px"; decalex=decalex+0.5 ; } sin_position_x=sin_position_x+sin_amplitude_x ; sin_position_x2=sin_position_x2+sin_amplitude_x2 ; setTimeout("movedivs()",frequence); } document.open(); while (compteur<nblines) { document.write("<div id='div"+compteur+"' style='width:"+width+"px;height:1px;position:absolute;background-color:#555555;margin-top:"+compteur+"px;'></div>"); document.write("<div id='divdiv"+compteur+"' style='width:"+width+"px;height:1px;position:absolute;background-color:#999999;margin-top:"+compteur+"px;opacity:0.5;'></div>"); ++compteur; --width; } document.close(); init();