1 Divをフェードアウトして2 Divでフェードアウトし、10秒の不活動の後、再び1番目のDivでフェードして、2 Divをフェードアウトしますか?

StackOverflow https://stackoverflow.com/questions/3582739

  •  01-10-2019
  •  | 
  •  

質問

これは現在私のコードです:

$(function() {          
        $('#header_left').click(function(){
            $('#header_left_info').fadeOut('fast');
            $('#header_left').fadeOut('fast');
            $('#header_left_back').delay(250).fadeIn('fast');
        });
});

(250ミリ秒の遅延は、フェードが競合しないようにするためです)

とにかく、この既存のコードを変更して#header_left_backをフェードアウトし、#header_leftに戻したい - しかし ユーザーによる10秒の不活動の後にのみ. 。これは簡単なはずですが、以前にjQueryの経験がないWebデザイナーにとっては、本当に難しいです。コーダーのベッチャは20秒以内にこれを理解できます!

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

この質問に答えられました。ありがとう!

役に立ちましたか?

解決

私はあなたがこのようなものを追いかけていると思います:

$(function() {          
  $('#header_left').click(function(){
    $('#header_left_info, #header_left').fadeOut('fast');
    $('#header_left_back').delay(250).fadeIn('fast');
  });

  var timer;
  $(document).bind("keypress mousemove", function() {
    clearTimeout(timer);
    timer = setTimeout(function() {
              $('#header_left_back').fadeOut('fast', function() {
                $('#header_left').fadeIn('fast');
              });
            }, 10000);
  });
});

マウスの動きやキーボードアクションの10秒後、逆にフェードがかかり、後ろに交換します。必要に応じてさらにイベントを追加できます mousewheel, mousedown, 、必要な限り具体的です。イベントが発生するたびに10秒のカウントダウンを開始するたびに、別のイベントが発生した場合、タイムアウトをクリアして10秒以上開始するため、10秒のアイドルだけがフェードを逆に発生させます。

他のヒント

ポール・アイリッシュは作成しました idletimer jQuery用のプラグイン。かなり便利です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top