我的消息框的动画队列有问题...
我制作了一个功能来通知用户有关应用程序的错误或信息。消息在 5 秒内显示(延迟),但用户可以通过单击 msgbox 中的十字按钮来隐藏它。
我想要的是:调用 notify() 将在 5 秒后滑下我的 msgbox 并自动淡出() 它。在 5 秒延迟之前调用 notify() 将 hide() 当前的 msgbox 并向下滑动一个新的 msgbox,该 msgbox 将在 5 秒后再次自动淡出()。
我的代码真正附加的是什么:如果我在延迟结束之前回忆起我的“notify()”函数,msgbox 将被正确隐藏,但新显示的 msgbox 的延迟将比我的 5 秒短......
我尝试使用 jQuery 函数“.stop(true,true)”来重置延迟,但它不起作用。有谁知道如何解决我的问题?
这是我的片段的小提琴:http: //jsfiddle.net/wvqkT/ 。要查看问题,请单击按钮,等待 2 秒钟,然后重新单击按钮。执行 5 次,您会发现 msgbox 很快就会消失...
这是我的函数的代码
function notify(type, message) {
$('#notificationMessage').stop(true, true).hide();
var classes = 'info warning success error';
$('#notificationMessage').removeClass(classes);
var types = classes.split(' ');
var title = "";
if (type === types[0]) {
title = "Information";
} else if (type === types[1]) {
title = "Attention";
} else if (type === types[2]) {
title = "Succès";
} else if (type === types[3]) {
title = "Erreur";
} else {
title = "Information";
type = types[0];
}
$('#notificationMessage').addClass(type);
$('#notificationMessage h3').empty().append(title);
$('#notificationMessage p').empty().append(message);
$('#notificationMessage').slideDown({ queue: false }).delay(5000).fadeOut(3000); }
$('#btn').on('click',function(){
notify($('#type').val(),"This is the message to show....");
});
谢谢你的帮助