下記がソースとなっています。
いつか、時間が出来たら、このソースの解説をしてみたいなぁ……(希望
/*-------------------------------------------------------------------
はねるはねるわ、リンクが跳ねるわ。
*****************************************
*** リンクが跳ねるスクリプト Ver.4.10 ***
*****************************************
<address>
いろきゅう
http://ir9.jp/
</address>
** コメント各種は消さないでね。(^^) **
// ---- Ver.04.10.0001 : 2001/09/16 ----------
// * スクリプト配布用に組みなおし
// * リンクが跳ねるだけにした。
// * 64 以上イベントが起きたとしても、無視するように修正
---------------------------------------------------------------------*/
//// ブラウザ判定
var bl_user = navigator.userAgent;
var bl_ver = navigator.appVersion;
var bl_name = navigator.appName;
var bl_id = 0;
if(bl_name.indexOf('Internet Explorer') >= 0)
{
if(bl_ver.charAt(0) >= 4)
{
bl_id = 1;
}
}
//////////////////////////
//////////////////////////
var hairetu = 65;
var mhairetu = hairetu - 1;
var wariai = 5;
var wariaiTmp = 0;
var wariaiNow = 0;
var i; // 落ちるのと共有してます。
var g_nLinkCount;
var g_NowID = 0; // 今のID格納
var g_aThis = Array(hairetu); // this ポインタ格納
var g_ahStop = Array(hairetu); // setInterval()
var g_aPhase = Array(hairetu); // フェーズ格納
var g_bFlg = true; // 落ち処理に入ったリンクがあるかい?
var g_nBreak = 0; // 落ちた数。
var g_Count = 0; // 現在のイベントの数
/////////////////////////// はじめに、この関数を呼び出そう♪
function jmplink()
{
if(bl_id != 1) return 1; // IE 以外はさようなら〜 (T^T)/~
g_nLinkCount = document.links.length;
for(i = 0; i < hairetu; i++)
{
g_aPhase[i] = 0;
}
for(i = 0; i < g_nLinkCount; i++)
{
document.links[i].style.position = "relative";
document.links[i].onmouseover = jump; // Link に onMouseOver の機能を追加するにゅ。
document.links[i].Flg = false;
}
}
function jump()
{
if(g_Count > 64 && this.Flg) return 0;
g_Count++;
g_aThis[g_NowID] = this.style;
g_ahStop[g_NowID] = setInterval("jumpProc(" + g_NowID + ")",50);
g_NowID = ++g_NowID % mhairetu;
}
function jumpProc(id)
{
switch(g_aPhase[id])
{
case 0:
case 4:
case 7:
{
g_aThis[id].top = "-2px";
}
break;
case 1:
case 3:
{
g_aThis[id].top = "-3px";
}
break;
case 2:
{
g_aThis[id].top = "-4px";
}
break;
case 5:
case 9:
case 11:
{
g_aThis[id].top = "0px";
}
break;
case 6:
case 8:
case 10:
{
g_aThis[id].top = "-1px";
}
break;
default:
{
alert(g_aPhase[id]);
}
}
if(g_aPhase[id] == 11)
{
clearInterval(g_ahStop[id]);
g_aPhase[id] = 0;
g_Count--;
}
else
{
g_aPhase[id]++;
}
}
無駄な変数が宣言されてるなぁ…(^^ ;;