5秒後のjQuery autohide要素


92

jQueryを使用してフォームが読み込まれてから5秒後に、Webページの要素を自動的に非表示にすることはできますか?

基本的に、私は持っています

<div id="successMessage">Project saved successfully!</div>

5秒後に消えたいと思います。私はjQuery UIと非表示効果を見てきましたが、思い通りに機能させるのに少し問題があります。

<script type="text/javascript">
        $(function() {
            function runEffect() {

                var selectedEffect = 'blind';

                var options = {};

                $("#successMessage").hide(selectedEffect, options, 500);
            };

            $("#successMessage").click(function() {
                runEffect();
                return false;
            });
        });
    </script>

クリック関数を削除し、5秒後にrunEffect()を呼び出すタイムアウトメソッドを追加したいのですが。

回答:


116
$(function() {
    // setTimeout() function will be fired after page is loaded
    // it will wait for 5 sec. and then will fire
    // $("#successMessage").hide() function
    setTimeout(function() {
        $("#successMessage").hide('blind', {}, 500)
    }, 5000);
});

:jQuery関数をsetTimeout内で機能させるには、関数を内部でラップする必要があります

function() { ... }

1
私のウェブサイトでこのコードを試しました。しかし、それはうまくいきませんでした。このjsスクリプト以外に、それを機能させるために何が必要ですか?アドバイスをお願いします!ありがとうございました!
ジョーンズ2015年

1
@Jornesは、このスクリプトが<script src="jquery.js"></script>ページの後ろにあることを確認してください。
Konstantin Tarkus、2015年

217
$('#selector').delay(5000).fadeOut('slow');

2
このソリューションは$( 'html')。click(function(){// click outside $( "#selector")。fadeOut();});を壊すことに注意してください。
max4ever 2013年

この簡単な解決策をありがとう。
Ron

非常に簡単な解決策をありがとう!
Anahit DEV 2015

9

あなたが試すことができます :

setTimeout(function() {
  $('#successMessage').fadeOut('fast');
}, 30000); // <-- time in milliseconds

これを使用した場合、30秒後にdivが非表示になります。これも試しましたが、うまくいきました。


3

divテキストが消えた後、再度表示する必要がある場合があることに注意してください。したがって、要素を空にして、ある時点で要素を再表示する必要があります。

これは、1行のコードで実行できます。

$('#element_id').empty().show().html(message).delay(3000).fadeOut(300);

jQueryを使用している場合は、少なくとも要素を自動非表示にしないために、setTimeoutは必要ありません。


1

runEffect関数でsetTimeoutを使用します。

function runEffect() {
    setTimeout(function(){
        var selectedEffect = 'blind';
        var options = {};
        $("#successMessage").hide(selectedEffect, options, 500)
     }, 5000);
}

1

私は、あなたは次のようなこともできると思います...

setTimeout(function(){
    $(".message-class").trigger("click");
}, 5000);

イベントクリックでアニメーション効果を実行します...

$(".message-class").click(function() {
    //your event-code
});

ご挨拶、


1

jQuery( "。success_mgs")。show(); setTimeout(function(){jQuery( "。success_mgs")。hide();}、5000);


0

これは、クリック後のタイムアウトを設定する方法です。

$(".selectorOnWhichEventCapture").on('click', function() {
    setTimeout(function(){
        $(".selector").doWhateverYouWantToDo();
    }, 5000);
});

// 5000 = 5秒= 5000ミリ秒

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.