Я подготовил небольшой фрагмент кода, который работает совершенно отлично - за исключением того, что я хотел бы устранить паузу при установке текста в пустую строку (между «Привет мир» и «Привет вселенная»).
Кто-нибудь может понять, как?Должен признать - я не ...: - (
Песочница здесь
<!-- Put the notificationBar somewhere in your HTML -->
<div id="notificationBar"></div>
/* whatever you want it to look like - keep the display: none; */
#notificationBar {
display: none;
padding: 1em;
border-radius: 5px;
background-color: red;
color: white;
}
JQuery
// Set it up!
var notificationTextToggeled = 0; // Always 0
var notificationDelay = 2000; // Whatever delay you want, in ms (1000 = 1 sec)
// Here goes your code... intersperse it with notification messages you
// want to present to the user... just like below
notificationToggle ('Hello World');
notificationToggle ('');
notificationToggle ('Hello Universe');
notificationToggle ('Hello Superman');
notificationToggle ('');
// This function will do all the displaying and will keep an eye
// on not waving too many messages to the user in too short time:
// Each (not empty) message text will be displayed for at least the delay time
function notificationToggle (text) {
var know = $.now();
if (text != $('#notificationBar').html().length && know < (notificationTextToggeled + notificationDelay ))
$('#notificationBar').delay(notificationDelay, "fx");
$('#notificationBar').text().length
$('#notificationBar').slideUp('slow');
$.queue($("#notificationBar")[0], "fx", function () {
$(this).html(text);
$.dequeue(this);
});
if (text)
$('#notificationBar').slideDown('slow');
notificationTextToggeled = know;
}