Sponsored Link

画像を降らせるScriptです。
オリジナルはアメリカのサイトのAltanさん。
アレンジは「危ないとこ逝き隊」のHisaさんです。

     
 
1 まずは降らせたい画像を用意して、表示させたいページを開き、<body>と</body>の間に
↓をコピー&ペーストしましょう。
2 <SCRIPT LANGUAGE="JavaScript1.2">
<!-- Begin
//<!-- Original: Altan (snow@altan.hr) -->
//<!-- Web Site: http://www.altan.hr/snow -->
// Script arranged by Hisa (http://homepage1.nifty.com/ikitai/)

var no = 4; // 1画面に出る画像の枚数
snow = new Array();
snow[0] = new Array("画像.gif", 1); // 画像の指定。snow[?]の数字は0から始まる連番
snow[1] = new Array("画像.gif", 2); // 後ろの数字が1なら下から上、2なら上から下
snow[2] = new Array("画像.gif", 3); // 3なら左から右、4なら右から左。
snow[3] = new Array("画像.gif", 4);
var imgSize = 55; // 1番大きい画像の横幅+10ぐらいを指定する。

// _dom : 0=other, 1=Mozilla, 2=NN4, 3=IE4/5
var _dom=(document.all?3:(document.getElementById?1:(document.layers?2:0)));
var dx, xp, yp;
var am, stx, sty;
var i;


function getDocumentSize() {
if(_dom == 1 || _dom == 2) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
if (_dom == 3) {
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
}

getDocumentSize();

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
muki = new Array();
j = 0;

for (i = 0; i < no; ++ i) {
dx[i] = 0;
xp[i] = Math.random()*(doc_width-imgSize);
yp[i] = Math.random()*(doc_height-imgSize);
am[i] = Math.random()*20;
stx[i] = (snow[j][1] == 1 || snow[j][1] == 2) ? 0.02 + Math.random()/10 : 0.7 + Math.random();
sty[i] = (snow[j][1] == 1 || snow[j][1] == 2) ? 0.7 + Math.random() : 0.02 + Math.random()/10;
muki[i] = snow[j][1];
if (_dom==2) {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" top=\"15\" visibility=\"show\"><img src=\"" + snow[j][0] + "\" border=\"0\"></layer>");
} else if (_dom==1 || _dom==3) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px; width:1;\"><img src=\"" + snow[j][0] + "\" border=\"0\"></div>");
}
if (j == (snow.length-1)) { j = 0; } else { j += 1; }
}

function snowLoop() {
for (i = 0; i < no; ++ i) {
if (muki[i] == 1) {
yp[i] -= sty[i];
if (yp[i] < -imgSize) {
getDocumentSize();
xp[i] = Math.random()*(doc_width-am[i]-imgSize);
yp[i] = doc_height - 50;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
}
} else if (muki[i] == 2) {
yp[i] += sty[i];
if (yp[i] > doc_height-imgSize) {
getDocumentSize();
xp[i] = Math.random()*(doc_width-am[i]-imgSize);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
}
} else if (muki[i] == 3) {
xp[i] += stx[i];
if (xp[i] > doc_width-imgSize) {
getDocumentSize();
xp[i] = 0;
yp[i] = Math.random()*(doc_height-am[i]-imgSize);
sty[i] = 0.02 + Math.random()/10;
stx[i] = 0.7 + Math.random();
}
} else if (muki[i] == 4) {
xp[i] -= stx[i];
if (xp[i] < -imgSize) {
getDocumentSize();
xp[i] = doc_width - imgSize;
yp[i] = Math.random()*(doc_height-am[i]-imgSize);
sty[i] = 0.02 + Math.random()/10;
stx[i] = 0.7 + Math.random();
}
}
if (muki[i] == 1 || muki[i] == 2) {
dx[i] += stx[i];
snowMove("dot"+i,yp[i],xp[i] + am[i]*Math.sin(dx[i]));
} else {
dx[i] += sty[i];
snowMove("dot"+i,yp[i] + am[i]*Math.sin(dx[i]),xp[i]);
}
}
setTimeout("snowLoop()", 10);
}

function snowMove(lay,t,l) {
if (_dom == 1) {
document.getElementById(lay).style.top = t;
document.getElementById(lay).style.left = l;
}
if (_dom == 2) {
document.layers[lay].top = t;
document.layers[lay].left = l;
}
if (_dom == 3) {
document.all[lay].style.pixelTop = t;
document.all[lay].style.pixelLeft = l;
}
}

if (_dom) {
snowLoop();
}

// End -->
</SCRIPT>
3 上の方にある「1画面に出る画像の枚数」から「1番大きい画像の横幅+10ぐらいを指定する」までを書き換えます。

画像の枚数はあんまり多くない方がすっきり見えます〜。

snow[0] = new Array("画像.gif", 1);

snow[0][0]は指定する画像の数に応じて順番に数を増やして行きます。

"画像.gif"は画像のURLを入れます。(画像と表示させるページが別のフォルダにある場合はパスが通る様に)

*最後の
, 1)は降らせる方向。

それ以下は触らないようにしましょう〜♪