2

我有一个 php 页面,其中的变量在页面加载时设置为 true 或 false。我想在变量为真时显示一个特定的 div,然后 div 在 x 秒后消失。当它为假时,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

使用准备好而不是加载。

这是一个工作示例,但没有淡入,因为它总是显示

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

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