人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ieで使う、JAVAスクリプトの質問です。
マウスオーバーが外れてから一定時間後にレイヤーの表示をOffにしたいです。
具体的な記述例などがありましたら紹介してくださいませ。

●質問者: himawari-san
●カテゴリ:インターネット ウェブ制作
✍キーワード:IE Java スクリプト マウスオーバー レイヤー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● aki73ix
●200ポイント ベストアンサー

http://nifberry.727.net/test/hatena186.htm

サンプルを作成してみました

OnMouseOutでSetTimeOutを呼んでやるとよいと思います

var flg = new Array();

flg[1]=0;

flg[2]=0; // ON,OFFのフラグ

var exp = new Array();

exp[1]='<font color="#ff0000">サンプル</font>';  //レイヤ1の表示内容

exp[2]='<img src="hatena174b.gif">';  //レイヤ2の表示内容

まず、表示内容とフラグの初期化

function xOpen(x){ //表示切り替え処理

 flg[x]=1-flg[x];

 if(x==1)if(document.layers){

// Netscape 4.x

  document.INFO1.document.INFO2.document.open();

  if(flg[x])

    document.INFO1.document.INFO2.document.write(exp[x]);

  else

    document.INFO1.document.INFO2.document.write("");

  document.INFO1.document.INFO2.document.close();

 } else {

// IE 4?,Netscape 6?

  if(flg[x])

    document.getElementById("INFO1").innerHTML=exp[x];

  else

    document.getElementById("INFO1").innerHTML="";

 }

 if(x==2)if(document.layers){

// Netscape 4.x

  document.INFO3.document.INFO4.document.open();

  if(flg[x])

    document.INFO3.document.INFO4.document.write(exp[x]);

  else

    document.INFO3.document.INFO4.document.write("");

  document.INFO3.document.INFO4.document.close();

 } else {

// IE 4?,Netscape 6?

  if(flg[x])

    document.getElementById("INFO3").innerHTML=exp[x];

  else

    document.getElementById("INFO3").innerHTML="";

 }

}

この処理で、レイヤーのON/OFFを切り替えます(フラグの内容でONかOFFか決めます)

function OffTimer(){

  flg[1]=1; //表示をOFFにするフラグ

  xOpen(1);

  flg[2]=1; //表示をOFFにするフラグ

  xOpen(2);

}

こちらは、タイマーで時間が来た時にOFFにする処理です

<A Style="color=#0000ff;text-decoration:underline;cursor:hand;" onMouseOver="flg[1]=0;flg[2]=0;xOpen(1);xOpen(2);" onMouseOut="setTimeout('OffTimer()',3000)">ここ</A>にあわせると表示、離して、しばらくするとOFF<BR>

これはHTML部分、「ここ」の文字にカーソルを合わせると表示、離すと3秒後に消去します、SetTimeOutの数値を3000から変えれば時間を調整できます

<SPAN ID="INFO1"><ilayer name="INFO1"><layer name="INFO2">

</layer></ilayer></SPAN>

<font size="2"><SPAN ID="INFO3"><ilayer name="INFO3"><layer name="INFO4">

</layer></ilayer></SPAN></font>

ここは、レイヤーの本体です

◎質問者からの返答

すごい。

コードつくってくださったんですか!?

\(◎o◎)/!

ありがとーございます!!


2 ● yakato_jun
●50ポイント

http://www.openspc2.org/JavaScript/ref/timer/setT.htm

こんな感じでどうでしょう

onmouseover='setTimeout("myFunc()", 1000);

第一引数:呼び出すfunction名(文字列で指定するので注意)

第ニ引数:待つ秒数(単位:ms)

myFuncをレイヤー制御を行っているfanctionに置き換えれば良いと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ