3

フェードインのような google.com を実行しようとしています (テキストをフェードアウトしたい)

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
  $(document).ready(function() {
    $("html").mousemove(function () {
      $("p").fadeOut("slow");
    });
  });
</script>

そのコードを使用すると、マウスを動かしていなくてもフェードアウトが自動的にアクティブになります。すべてのブラウザで発生します。任意のヒント?

4

3 に答える 3

5

イベントは最初に 1 回mousemove発生し、ピクセルを移動するたびに発生するため、次のように、最初の (ブラウザによっては自動の可能性がある)mousemoveイベントを無視して、必要な効果を得ることができます。

$(function() {
  var moveCount = 0;
  $("html").mousemove(function () {
    if(moveCount++ === 0) return; //first run?
    $("p").fadeOut("slow");
    $(this).unbind('mousemove'); //unbind this, no need to stick around
  });
});​

ここでデモを試すことができます。ここで行っているのは、イベントの最初の発火を無視することだけです。mousemoveその後、フェードを実行し、このハンドラーをバインド解除して、将来の発火で実行されないようにしmousemoveます。クリーンアップするだけです。

于 2010-06-27T23:06:08.420 に答える
1

ページがロードされ、ページがロードされた後にマウスがページに存在すると、イベントが発生するようです。マウスをアドレス バーまたはブラウザ上部のメニューの上に置いて、ページからマウスを隠してみてください。F5 でページを更新すると、イベントが発生しないことに注意してください。同様に、F5 で更新して、すぐにページを右クリックしてみてください。マウスをページの上に置きますが、コンテキスト メニューがまだ開いていることを確認してください。ページが読み込まれたら、マウスをまったく動かさずに、キーボードの Escape キーを押して、マウスがコンテキスト メニューを終了し、ページに戻るようにします。マウスは移動していませんが、ページ上で検出されており、イベントがトリガーされています。

Windows 7 の Chrome 5 でテスト済みです。別のブラウザを試すのは面倒ですが、同じことだと思います。

于 2010-07-03T23:34:43.263 に答える
0

「微動」はありませんか?光学式マウスでは、ほこりや汚れだけで動きが記録されることがあります。

于 2010-06-27T23:07:52.060 に答える