Какой параметр css изменяет функцию animate ('width', 'hide')

0

В моей функции jquery у меня есть несколько элементов в списке ul, некоторые из них показаны, а некоторые из них нет. После нажатия элемента li, я хочу проверить, если есть что-либо, спрятать его (сдвинув его влево) и выполнить другое действие (но только если первая функция была выполнена!). Итак, как я могу проверить, было ли выполнено это первое действие (элемент был анимирован jquery)? Код HTML выглядит следующим образом:

<ul>
<li>
     <div class="content_nav content_nav1">
     </div>
     <div class="content_el content_el1"> 
     </div>
</li>
<li>
     <div class="content_nav content_nav2">
     </div>
     <div class="content_el content_el2"> 
     </div>
</li>
</ul>

и jQuery:

for ( var i=1; i<3; i++)
    {
        if (i != item_number)
        {
             var another_content = ".content_el" + i;
             var another_nav = ".content_nav" + i;

             $(another_content).animate({'width': 'hide'}, animate_duration);
              //here i want to check, if action above was performed
                 $(another_nav).animate({'width':'show'}, animate_duration);
                    }
            }

Я был бы признателен за любую помощь! Заранее спасибо.

EDIT: Итак, правильный вопрос: какой параметр css

  $(another_content).animate({'width': 'hide'}, animate_duration);

изменяет.

2 ответа

0

функция анимации поставляется с "полным" обработчиком. https://api.jquery.com/animate/

Выполните свою функцию следующим образом:

$(another_content).animate({'width': 'hide'} , animate_duration, function(){
    $(another_nav).animate({'width':'show'}, animate_duration);
})

EDIT: функция анимации всегда выполняется, поэтому вам нужно проверить, является ли элемент видимым, чтобы начать ширину:

if($(another_content).is(":visible")){
    $(another_content).animate({'width': 'hide'} , animate_duration, function(){
        $(another_nav).animate({'width':'show'}, animate_duration);
    })
}
  • 0
    Но тогда, $(another_nav).animate({'width':'show'}, animate_duration); будет выполняться для каждого элемента, даже если он уже скрыт, потому что функция $(another_content).animate({'width': 'hide'} , animate_duration, function(){ ничего не сделает и продолжит. Я хочу знать, какие Параметр CSS должен проверить на наличие изменений (извините, английский не мой родной)
  • 0
    Вы не можете сделать это в то время, но вы можете сделать проверку, прежде чем начать анимацию. Проверьте мое обновление
Показать ещё 1 комментарий
0

Если я правильно понимаю ваш вопрос,

Вы можете передать функцию, чтобы показать another_nav только Ofter another_content законченных анимировать

$(another_content).animate({width: 'hide'}, animate_duration, function () {
   $(another_nav).animate({width:'show'}, animate_duration);
)};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню