Показать сообщение отдельно
  #5 (permalink)  
Старый 25.07.2017, 05:51
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Prolific,
у вас на этом элементе уже висит delay(), который и блокирует анимацию. Выходом может быть создание блока-обёртки чтобы вешать slideUp на разные элементы:

var showMessage = (function() {
    var i = 0;
    var messCount = 0;
    var maxMessCount = 3;//Количество возможных отображаемых сообщения одновременно
    return function(type, msg, delay) {
        if(messCount >= maxMessCount) {
            var remElem = $('#wrapper'+(i-maxMessCount));
            console.log('messCount >= maxMessCount: ', remElem);

            remElem.slideUp(300, function() {
                //alert('a');
                console.log('End anim, remove: ' + remElem.attr('id'));
                remElem.remove();
                //messCount = messCount > 0 ? messCount - 1 : 0;
            });
            //remElem.remove();
            messCount = messCount > 0 ? messCount - 1 : 0;
        }
 
        $('.messageDiv').append('<div id="wrapper'+i+'"><div class="'+type.match(/\w+$/)+'" id="showMess_'+i+'" style="display: none;">'+msg+'</div></div>');
        messCount++;
 
        $('#showMess_'+i).slideDown(300, function(){
            $(this).delay(delay).slideUp(300, function(){
                if($(this).length) {
                    $(this).parent().remove();
                    messCount = messCount > 0 ? messCount - 1 : 0;
                }
            });
        });
        i++;
        return false;
    }
})();
Ответить с цитированием