我有一个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或自动消失。 另外,控制台中没有错误。
答案 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);
});