当其可见时自动fadeOut Div

时间:2013-10-24 04:32:26

标签: javascript php jquery html css

我有一个Div会在有会话时出现,否则它将保持隐藏状态。

我想要的是在Div显示几秒后自动和慢慢淡出Div。

这是我的代码以及到目前为止我尝试过的内容:

<?php if(isset($_SESSION['message'])){ ?>
   <div class="message">
    <?php echo $_SESSION['message']; ?>
   </div>
<?php unset($_SESSION['message']); } ?>

Jquery:

<script type="text/javascript">
if( $('.message').is(':visible') ) {

  $(".message").fadeOut(1000);

}
</script>

我面临的问题是DIV出现但它没有Fadeout或自动消失。 另外,控制台中没有错误。

2 个答案:

答案 0 :(得分:2)

您不需要超时或间隔。甚至可以检查元素是否存在或是否可见。

您需要在文档准备就绪时运行此代码,或者至少在.message元素之后运行。

$(document).ready(function(){
  $('.message').delay(5000).fadeOut(300);
});

如果没有.message元素,则不会产生任何负面影响。

答案 1 :(得分:1)

问题是您的代码无法正常运行,因为它在DOM准备就绪时只执行一次。您需要定期检查值。所以在这里你需要做这样的事情

您也可以通过setTimeout函数

执行此操作
setTimeout(function(){
    if( $('.message').is(':visible') ) 
      $(".message").fadeOut(1000);
},100);

或者正如我上面所说的执行代码,你必须把它放在$(document).ready函数中(当DOM准备就绪时)

$(document).ready(function () {
 if( $('.message').is(':visible') ) 
    $(".message").fadeOut(1000);
});