5

.mouseoverマウスが「トリガー」要素上に所定の時間 (たとえば 500 ミリ秒) 置かれた場合にのみ、関数をアクティブにしたいと考えています。

例えば

$('.featured').mouseover(function () {
      $('.feat-txt').fadeOut("fast");
    });

マウスが .featured 要素上に 500 ミリ秒以上置かれた場合にのみ、関数が開始され、.feat-txt が FadeOut できます。その要素の上に単純なマウス オーバー (ただの素早い動き) では、機能はアクティブになりません。

それを行う方法について何か提案はありますか?

4

3 に答える 3

6

私は過去にホバーインテントを使用しました-かなり良いです、そして私が思った後にあなたがしていることをします:

http://cherne.net/brian/resources/jquery.hoverIntent.html

于 2009-11-03T10:58:10.430 に答える
1

このようにしてください:

  • その要素でのマウスオーバーイベントをインターセプトします。コールバック関数では何もしません。代わりに、必要な遅延で別の関数を呼び出します。たとえば、プロトタイプでは、functionName.delay(500)を使用して呼び出します。

  • 2番目の関数では、マウス座標と要素座標を取得するためにjQueryが提供するものを使用して、マウスがまだ要素上にあるかどうかを確認します。マウスがまだそこにある場合は、やりたいことを何でもします。

ユーザーが要素の外側と内側にマウスを移動でき、functionNameが引き続き起動するため、これは長い遅延では機能しません。

私が言っても構わないのなら、これは非常に悪い考えです。

于 2009-11-03T11:04:42.163 に答える
0

実は、この jquery hover プラグインも見つけました。http://blog.threedubmedia.com/2008/08/eventspecialhover.html

マウスオーバーの待機時間は使用しませんが、特定の時間枠でマウスの速度を使用します。

結果は、このページの右側に表示される 3 つのボックスで確認できます: http://www.splendida.it (私は現在取り組んでいます)。

私には素敵に見えます。マウスが最初のボックスから 3 番目のボックスにすばやくジャンプすると、マウスが 2 番目の要素を通過しても何も起こりません。

于 2009-11-03T11:56:46.483 に答える