ページに雪が降ってきた!

Gaiax のページでシャボン玉が飛んでいたり。
紅葉や雪が降っていたりしているのを見かけて、
季節によって変えると楽しいなと思いました。
ここでは、ページに雪が降るソースを書いておきます。。
    



Gaiaxのページに表示させる時は!
目次ページからダウンロードした、JSファイル2通と画像ファイルを編集して、
 Gaiax 以外のホームページサイトにアップして 外部ファイルとして Gaiax のページに貼り付けて利用してください。
  外部ファイル貼り付けタグ 
<HEAD>
<script language="JavaScript" src=ホームページアドレス/yuki1_1.js></script>
</HEAD>
<BODY>
<script language="JavaScript" src=ホームページアドレス/yuki1_2.js></script>
</BODY>
 下のタグを編集する前に、
 左の snow の画像を Gaiax の「画像アップローダー」にアップして
 画像にアドレス(URL)を付けておきます。
snow

<script language="JavaScript1.2" type="text/javascript">
<!--//
var snowImgSizeW = new Array(); var snowImgSizeH = new Array();

var snowArea =
1; // 雪の降る範囲。0:TOPのWindowエリアのみ 1:PAGE全体 2:スクロールに合わせて動く。
var snowNo =
25; // 雪の数
var snowImg = "
snow.gif"; // 「画像アップローダー」にアップした雪の画像のURL
snowImgSizeW[0] =
20; // 画像の幅
snowImgSizeH[0] =
20; // 画像の高さ


var _dom=(document.all?3:(document.getElementById?1:(document.layers?2:0)));
var dx = new Array(), snowPosX = new Array(), snowPosY = new Array(), size = new Array();
var yure = new Array(), cycle = new Array(), sonwSpeed = new Array(), way = new Array();
snowImgSizeW[1] = Math.round((snowImgSizeW[0] / 3) * 2); snowImgSizeH[1] = Math.round((snowImgSizeH[0] / 3) * 2);
snowImgSizeW[2] = Math.round(snowImgSizeW[0] / 3); snowImgSizeH[2] = Math.round(snowImgSizeH[0] / 3);

function getSnowArea() {
if(_dom == 1 || _dom == 2) {
docWidth = self.innerWidth;
docHeight = (snowArea == 1 && document.height > window.innerHeight) ? document.height : window.innerHeight;
}
if (_dom == 3) {
docWidth = document.body.clientWidth;
docHeight = (snowArea == 1 && document.body.scrollHeight > document.body.clientHeight) ? document.body.scrollHeight : document.body.clientHeight;
}
}

function getScrollPosY() {
if (_dom == 1) return scrollY;
if (_dom == 2) return pageYOffset;
if (_dom == 3) return document.body.scrollTop;
}

function snowPosInit(num, start) {
getSnowArea()
yure[num] = Math.random()*10;
snowPosX[num] = Math.random()*(docWidth - yure[num] - snowImgSizeW[0] - 10);
snowPosY[num] = 0;
cycle[num] = 0.5 + Math.random();
if (size[num] == 0) sonwSpeed[num] =
2.0 + Math.random() * 0.5; // 大サイズ雪のスピード
if (size[num] == 1) sonwSpeed[num] =
1.5 + Math.random() * 0.5; // 中サイズ
if (size[num] == 2) sonwSpeed[num] =
1.0 + Math.random() * 0.5; // 小サイズ
way[num] = Math.random() * 1 - 0.5;
if (start) {
dx[num] = 0;
snowPosY[num] = Math.random()*(docHeight - snowImgSizeH[0] - 10);
}
}

function moveLayerTo(layerName, x, y){
if (_dom == 1) {
document.getElementById(layerName).style.left = x;
document.getElementById(layerName).style.top = y;
}
if (_dom == 2) {
document.layers[layerName].left = x;
document.layers[layerName].top = y;
}
if (_dom == 3) {
document.all(layerName).style.pixelLeft = x;
document.all(layerName).style.pixelTop = y;
}
}

function moveSnow() {
for (i=0; i<snowNo; i++) {
snowPosY[i] += sonwSpeed[i];
if (snowPosY[i] > (docHeight - snowImgSizeH[0] - 5) || snowPosX[i] < 0 ||
snowPosX[i] > (docWidth - snowImgSizeW[0] - 5)) snowPosInit(i);
dx[i] += cycle[i];
if ((Math.random() * 1000) < 10) {
if (way[i] < 0) way[i] = 0 - Math.random() * 0.5 + 0.1;
if (way[i] > 0) way[i] = Math.random() * 0.5 - 0.1;
}
if ((Math.random() * 3000) < 10 && (docHeight / 2) < snowPosY[i]) snowPosInit(i);
snowPosX[i] += way[i];
sclY = snowArea == 2 ? getScrollPosY() : sclY = 0;
moveLayerTo("snow"+i,Math.floor(snowPosX[i]+yure[i]*(Math.sin(dx[i]*Math.PI/180))), Math.floor(snowPosY[i])+sclY);
}
setTimeout("moveSnow()", 10);
}

// -->
</script>

</head>

<body bgcolor="#0033ff">
<script language="JavaScript1.2" type="text/javascript">
<!--

if (_dom) {
getSnowArea(); var j = 0;
var snowLay = '';
for (i=0; i<snowNo; i++) {
size[i] = j; snowPosInit(i, true);
if (_dom==2) snowLay += '<LAYER name="snow' + i + '" left="-100" top="-100" visibility="show"><img src="'
+ snowImg + '" border="0" width="' + snowImgSizeW[j] + '" height="' + snowImgSizeH[j] + '"></LAYER>';
if (_dom==1 || _dom==3) snowLay += '<DIV id="snow' + i
+ '" style="position:absolute; top:-100px; left:-100px; width:1;"><IMG src="'
+ snowImg + '" border="0" width="' + snowImgSizeW[j] + '" height="' + snowImgSizeH[j] + '"></DIV>'
if (j == 2) { j = 0; } else { j += 1; }
}
document.write(snowLay);
moveSnow();
}
// End -->
</script>