ieで使う、JAVAスクリプトの質問です。

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

回答の条件
  • URL必須
  • 1人50回まで
  • 登録:2006/03/27 17:05:54
  • 終了:2006/03/27 21:58:34

ベストアンサー

id:aki73ix No.1

aki73ix回答回数5224ベストアンサー獲得回数272006/03/27 18:04:54

ポイント200pt

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>

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

id:himawari-san

すごい。

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

\(◎o◎)/!

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

2006/03/27 18:44:45

その他の回答(1件)

id:aki73ix No.1

aki73ix回答回数5224ベストアンサー獲得回数272006/03/27 18:04:54ここでベストアンサー

ポイント200pt

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>

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

id:himawari-san

すごい。

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

\(◎o◎)/!

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

2006/03/27 18:44:45
id:yakato_jun No.2

yakato_jun回答回数3ベストアンサー獲得回数02006/03/27 18:24:29

ポイント50pt

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

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

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

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

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

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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません