2011-02-10 9 views
0

mouseoverイベントとのリンクがあります。 onmouseoverはレイヤーを表示します。 マウスが無意識にリンクを越えてしまうとレイヤーが表示されるため、うまくいきますが、そのビットは面倒です。Mouseoverイベント(タイムアウトあり)

私が望むのは、ユーザーがマウスオーバーしてリンクに200ミリ秒滞在すると、レイヤーが表示されるはずです。

どうすればいいですか?私が登録してsetTimeout関数を必要とするので、マウスが200 MSの前に出たら、タイムアウトをクリアする必要があります。

ありがとうございました。

+1

あなたは、タイマーを作成して 'mouseout'でクリアするよりも良い方法を望んでいるか、これを行う方法が分かりません。 –

+0

これを行うには、きれいな方法が必要です。ありがとう – user160820

答えて

0

enter image description here

<!doctype html> 

<html> 
    <head> 
     <script> 
      window.onload = function() { 
       var interval = null, link = null; 

       // Window = Container 
       window.onmousemove = function (event) { 
        var target = event.target; 

        if (target.nodeName === "A") { 
         link = target; 

         if (interval === null) { 
          interval = setInterval (function() { 
           clearInterval (interval); 

           interval = null; 

           open ("", ""); // Display layer 
          }, 1000); // I think 1 sec is better 
         } 
        } 

        if (interval !== null && link !== target) { 
         clearInterval (interval); 

         interval = null; 
        } 
       } 
      } 
     </script> 

     <title></title> 
    </head> 

    <body> 
     <a href = "#">Click me</a> 
     <a href = "#">Click me</a> 
    </body> 
</html> 
0

私はカップルのさまざまな企業でちょうどそれをするJSコードを書いています。トリガーアフォーダンスが何であれ、マウスの上のレイヤーを却下し、その解雇も遅らせるようにしたい場合は、複雑になります。

タイマーをクリアすることができるように、タイマーが保存されているタイマーが必要です。私はあなたのためのコードを書くつもりはないが、私はあなたの実装を批判することができればそれを持っている。

関連する問題