2013-03-20 3 views
7

マウスが一定の時間(この場合は5000ミリ秒)の間非アクティブになるとフェードアウトするクラスがfade-objectで、マウスがフェードインすると再び移動した。非アクティブ時にマウスカーソルをフェードアウトする(jQueryで)

これは私が使用しているコードです:

 var timer; 
     $(document).mousemove(function() { 
      if (timer) { 
       clearTimeout(timer); 
       timer = 0; 
      } 

      $('.fade-object').fadeIn(); 
      timer = setTimeout(function() { 
       $('.fade-object').fadeOut() 
      }, 5000) 
     }) 

どのように私はそれがとてもマウスカーソルが私のfade-objectのdivと同期して、同じようにしてフェードアウトするのですか?

答えて

6

cursor: nonehtmlのCSSに設定し、fadeoutの直後に発生するmousemoveイベントが再表示されないようにします。

Demo

$(function() { 
    var timer; 
    var fadeInBuffer = false; 
    $(document).mousemove(function() { 
     if (!fadeInBuffer) { 
      if (timer) { 
       clearTimeout(timer); 
       timer = 0; 
      } 
      $('.fade-object').fadeIn(); 
      $('html').css({ 
       cursor: '' 
      }); 
     } else { 
      fadeInBuffer = false; 
     } 


     timer = setTimeout(function() { 
      $('.fade-object').fadeOut() 
      $('html').css({ 
       cursor: 'none' 
      }); 
      fadeInBuffer = true; 
     }, 5000) 
    }); 
}); 
+0

これは、何らかの理由で動作していないようです... .fade-オブジェクトとdivがすぐに戻ってフェードアウト後にフェードイン。 –

+1

更新 - 何らかの理由で、 'fadeout'が' mousemove'を起動させるようです。ですから、私は 'fadeout'の後に次の' mousemove'を無視する呼び出しバッファを1つだけ持っています。 –

+0

うわー、ありがとう!それはmousemove発砲については変です。何らかの理由で、カーソルがまだ私のために、フィドルでも消えていません。それは単なる支援物ですか?私はSafariの最新バージョンを使用しています。 –

7

cursor: noneをjQuery経由で遅延を適用します。フェードアウトさせることは可能だとは思わないでください。

このCSSプロパティの使用は、Firefox 3+、Safari 5+、Chrome 5+に限られます。 IEではサポートされていません(hereと記載されています)。

私は私のブラウザでは(Linux上のFirefox 19.0.2)が動作していないです、jsBinで例を入れている、あなたは私がそのようにお勧めすることはできませんとにかく

:)を可能な限り多くのブラウザでそれをテストマウスカーソルが操作システムのUIの一部であると考えると、UIの一部ではないユーザーから何かを隠すことは決して良い方法ではありません。

関連する問題