我正在使用.show
来显示隐藏的消息,它会在表单成功提交之后出现。
如何显示该消息 5 秒钟然后隐藏?
.delay()
,像这样:$("#myElem").show().delay(5000).fadeOut();
如果不是动画,则直接使用 setTimeout()
,示例代码如下:
请注意,保留原文html标签。
$("#myElem").show();
setTimeout(function() { $("#myElem").hide(); }, 5000);
你之所以要这样做是因为.hide()
没有持续时间时通常不会在动画(fx
)队列上,它只是一个即时效果。或者,另一个选项是自己使用.delay()
和.queue()
,像这样:$("#myElem").show().delay(5000).queue(function(n) {
$(this).hide(); n();
});
您可以使用以下效果进行动画,您可以根据自己的需求更改值。
$("#myElem").fadeIn('slow').animate({opacity: 1.0}, 1500).effect("pulsate", { times: 2 }, 800).fadeOut('slow');
就像这样简单:
$("#myElem").show("slow").delay(5000).hide("slow");
在 Laravel 8 中,使用 Ajax 显示保存在会话中的 5 秒错误消息
<div id="error">
@php
$error = Session::get('message');
echo $error;
@endphp
</div>
<script>
$("#error").show();
setTimeout(function() {
$("#error").hide();
}, 5000);
</script>
.delay()
不能与.hide()
一起使用,元素会被显示然后立即隐藏。请参见 这个 jsFiddle,这就是为什么 Nick 提到了“如果不是动画,请直接使用 setTimeout(),像这样:...”。 - Wesley Smith