1

私はプロトタイプJS(および一般的なJavaScript)を初めて使いました。ユーザーがページ上の要素を0.5秒間ホバーした後にオーバーレイを表示しようとしています。現在、私はこの達成しています:プロトタイプJS:タイマー付きマウスオーバー?

$$("a.tag").invoke('observe', 'mouseover', function() { 
//my code here 
}); 

トリガー要素がマウスオーバーされたときにオーバーレイが表示されます。このコードは、どのように私は半分が一時停止する秒追加するには?

ご協力いただきありがとうございます!

答えて

2

この操作を行います。私はあなたがあなたの要素にクラスwaitingEndDelayを追加することができると思う

var timerId; 

$$("a.tag").invoke('observe', 'mouseover', function() { 
    timerId = setTimeout(function() { 
    // code here 
    }, 500); 
}); 

$$("a.tag").invoke('observe', 'mouseout', function() { 
    if (timerId) { 
    cancelTimeout(timerId) 
    timerId = null; 
    } 
}); 
+0

こんにちはマーティン、答えに感謝します。私は少し違ったことをしたいと思っていました... 0.5秒の休止時間を追加するのではなく、マウスが0.5秒以上要素の上にあったならば、その機能をトリガーしたいと思っていました。上記のコードでは、要素の上に0.1秒間置いてもオーバーレイが表示されますが、それはちょうど遅れるでしょう。マウスが要素の上にある時間の長さをチェックする方法についての任意のアイデア? – Rohan

+0

申し訳ありません愚かな私、今理解しています。私は何かを働かせて私の投稿を編集します:) –

2

を。 要素にwaitingEndDelayクラスがない場合にのみ実行されるように、 "show function"をコーディングします。遅延の最後にwaitingEndDelayを削除します。

+0

を参照してください。遅延時間が経過した後にshow関数が呼び出されないため、これはうまくいかないでしょう。 –

関連する問題