jquery 淡化 in/out 确认文本
jquery fading in/out a confirmation text
我在页面上有一个 div,默认情况下它是空的(and/or 隐藏),不同操作后的确认文本应该打印一段时间然后消失。
我想用 jquery 做到这一点,但在淡入和淡出时遇到了困难。
我使用了这个代码:
<div id='confirmation' style='display:none'></div>
$('#confirmation').html("<font color='green'>Success!</font>").fadeIn(300).delay(3000).fadeOut(300);
它有点管用,但是当页面向此 div 发送多个确认文本时,一切都被破坏了。即使文本已更改,它仍然会继续尝试淡出前一个,然后再次淡入。
我希望它表现得像这样:当发送多个确认时,它们之间的延迟很小,它应该停止执行当前序列并从头开始(立即淡出,更改文本,然后慢慢淡入) .
还有初始 'display:none' 第一个序列的行为不同。
你能建议一些方法来实现我想要的吗?
您可以为此使用 jQuery.stop()。可能是您需要更改它们的位置以创建完美的序列,但我希望您能理解。 ✌️
编辑:忘记添加 clearQueue true 命令。您可以在 https://api.jquery.com/stop/
上找到更多信息
$('#cc').click(function(){
$('#confirmation').stop(true, false).html("Success").fadeIn(300).delay(3000).fadeOut(300);
});
#confirmation {
color:#000;
border: 1px solid #CCC;
display:none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="confirmation"></div>
<div id="cc">Click to confirm</div>
我在页面上有一个 div,默认情况下它是空的(and/or 隐藏),不同操作后的确认文本应该打印一段时间然后消失。
我想用 jquery 做到这一点,但在淡入和淡出时遇到了困难。
我使用了这个代码:
<div id='confirmation' style='display:none'></div>
$('#confirmation').html("<font color='green'>Success!</font>").fadeIn(300).delay(3000).fadeOut(300);
它有点管用,但是当页面向此 div 发送多个确认文本时,一切都被破坏了。即使文本已更改,它仍然会继续尝试淡出前一个,然后再次淡入。
我希望它表现得像这样:当发送多个确认时,它们之间的延迟很小,它应该停止执行当前序列并从头开始(立即淡出,更改文本,然后慢慢淡入) .
还有初始 'display:none' 第一个序列的行为不同。
你能建议一些方法来实现我想要的吗?
您可以为此使用 jQuery.stop()。可能是您需要更改它们的位置以创建完美的序列,但我希望您能理解。 ✌️
编辑:忘记添加 clearQueue true 命令。您可以在 https://api.jquery.com/stop/
上找到更多信息$('#cc').click(function(){
$('#confirmation').stop(true, false).html("Success").fadeIn(300).delay(3000).fadeOut(300);
});
#confirmation {
color:#000;
border: 1px solid #CCC;
display:none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="confirmation"></div>
<div id="cc">Click to confirm</div>