リンクが跳ねるスクリプト Ver 4.10 ソース

下記がソースとなっています。
いつか、時間が出来たら、このソースの解説をしてみたいなぁ……(希望



/*-------------------------------------------------------------------
  はねるはねるわ、リンクが跳ねるわ。
  
           *****************************************
           *** リンクが跳ねるスクリプト 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]++;
    }
}


無駄な変数が宣言されてるなぁ…(^^ ;;

▲このページのTOP▲