Code
var oAnimate = document.getElementById("ID_ANIMATE");
var nWidth = oAnimate.offsetWidth;
var nHeight = oAnimate.offsetHeight;
var nFSize = 9;
var nCount = 30;
var nMaxSpeed = 4;
var strFlakeURL = "img/snowflake.gif";
// --
var aoFlakes = new Array(nCount);
// --
function UpdateFlakePos(nNum)
{
var oImg = aoFlakes[nNum];
oImg.style.top = oImg.m_nY.toString(10) + "px";
oImg.style.left = oImg.m_nX.toString(10) + "px";
}
function ResetFlake(nNum, bRandY)
{
var oImg = aoFlakes[nNum];
oImg.m_nX = Math.ceil(Math.random() * nWidth);
oImg.m_nY = bRandY ? Math.ceil(Math.random() * nHeight) : -nFSize;
oImg.m_nSpeed = Math.ceil(Math.random() * nMaxSpeed) + 1;
}
function OnTimer()
{
for(var i = 0; i < nCount; i++)
{
var oImg = aoFlakes[i];
oImg.m_nX += Math.ceil(Math.random() * 3 - 2);
oImg.m_nY += oImg.m_nSpeed;
if(oImg.m_nY > nHeight)
ResetFlake(i, false);
UpdateFlakePos(i);
}
}
// --
for(var i = 0; i < nCount; i++)
{
var oImg = document.createElement("IMG");
oImg.src = strFlakeURL;
oAnimate.appendChild(oImg);
aoFlakes[i] = oImg;
ResetFlake(i, true);
UpdateFlakePos(i);
}
window.setInterval(OnTimer, 50);