• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マウスをのせてながら、2秒後にフェイドインしたい)

マウスをのせてながら、2秒後にフェイドインしたい

このQ&Aのポイント
  • jquery初心者の方がマウスをのせてながら、2秒後に要素をフェイドインさせる方法について質問されています。
  • 質問者はコードを書いたものの、マウスをのせても一瞬で要素がフェイドインしてしまう問題に遭遇しています。
  • 質問者はどのようにコードを書けばよいのかを知りたいとして、アドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

御提示のスクリプトだと、mouseoverしたら必ず2秒後に表示するというふうになります。 >一瞬だけマウスをのせてもフェイドインしてしまいます。 一瞬でもマウスがはずれたら表示しないのか、2秒後にマウスがそこにあれば一度はずれていても表示するのかなどによって考え方が変わると思いますが、前者ならマウスがはずれたらTimeoutの処理を中止すればよさそう。後者ならば2秒後の処理の際にマウスが対象の上にあれば表示、なければ処理しないというふうにするとか… ご参考までに… (全角空白は半角に) <前者の場合> $(function(){  $("div#aaa").hide();  var timerId;  $("div#bbb a").mouseover(function(){   timerId = setTimeout(function(){    $("div#aaa").fadeIn(1500);   }, 2000 );  }).mouseout(function(){   clearTimeout(timerId);  }); }); <後者の場合> $(function(){  $("div#aaa").hide();  var flag;  $("div#bbb a").mouseover(function(){   flag = true;   setTimeout(function(){    if(flag) $("div#aaa").fadeIn(1500);   }, 2000 );  }).mouseout(function(){ flag = false; }); });

tenpraxxx
質問者

お礼

fujillin様 ご回答有難う御座います。 説明不足で申し訳ございません。 前者の方です。 大変助かりました! 本当に有難う御座いました。

関連するQ&A