2

ページロード時に true または false に設定された変数を持つ php ページがあります。変数がtrueのときに特定のdivを表示したいのですが、x秒後にdivが消えます。false の場合、div は非表示のままです。

私のコードには div が表示されますが、x 秒経っても消えません。

    if($showNotification == TRUE){
        echo "<div class='notification'>notification!!</div>";
        echo '<script type="text/javascript">
                 $(document).load(
                    function() {
                       $("div.notification").fadeIn();
                       setTimeout(function() {
                          $("div.notification").fadeOut("slow");
                       }, 3000); 
                  });  
              </script>';

     }
4

4 に答える 4

6

JSを次のように置き換えます。

$(function() {
    $('div.notification').hide().fadeIn().delay(3000).fadeOut('slow');
});  

デモ: http: //jsfiddle.net/nEsg9/

于 2013-02-05T17:15:48.873 に答える
1

使用する代わりに:

$(document).load( ...

使用する

$(document).ready( ...
于 2013-02-05T17:14:03.147 に答える
1
if($showNotification == TRUE){
    echo "<div class='notification' style='display:none'>notification!!</div>";
    echo '<script type="text/javascript">
             $(document).load(
                function() {
                   $("div.notification").fadeIn();
                   setTimeout(function() {
                      $("div.notification").fadeOut("slow");
                   }, 3000); 
              });  
          </script>';

 }

フェードインを行う前に非表示になっていないため、表示されます。したがって、フェードインは効果がありません(すでに存在しています)。

于 2013-02-05T17:14:30.577 に答える
1

load の代わりに ready を使用します。

これは実際の例ですが、フェードインせずに常に表示されているためです

http://jsfiddle.net/2JKxr/1/

$(document).ready(
            function() {
               $("div.notification").fadeIn();
               setTimeout(function() {
                  $("div.notification").fadeOut("slow");
               }, 3000); 
          }); 
于 2013-02-05T17:17:40.473 に答える