2014-12-02 3 views
0

Я пытаюсь запустить простую анимацию, а затем удаляю div, так как он лежит над некоторыми кнопками, поэтому вы не можете щелкнуть их после анимации.запустить анимацию, а затем удалить элемент

JS

$(".intro").eq(0).delay(800).animate({"opacity":"0"},1000); 

Я попытался сделать это, чтобы удалить элемент после анимации, но она удаляет его раньше.

$(".intro").eq(0).delay(800).animate({"opacity":"0"},1000).remove(); 

ответ

2

Утилизацию обратного вызова анимировать функция в:

$(".intro").eq(0).delay(800).animate({opacity: 0}, 1000, function() { 
    $(this).remove() 
}); 

В качестве альтернативы, добавить полную функцию в объекте опции:

$(".intro").eq(0).delay(800).animate({opacity: 0}, {duration: 1000, complete: function() {$(this).remove();}}); 

Вы можете добавить больше вариантов к нему, например, ослабление. Проверьте API doc

0

Используйте полный обратный вызов

$(".intro").eq(0).delay(800).animate({"opacity":"0"},1000, function() { $(this).remove(); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="intro">Hello</div>

1

Вы можете использовать complete callback вызываемая после завершения анимации:

$(".intro").eq(0).delay(800).animate({"opacity":"0"},1000, function() { 
     $(this).remove(); 
}); 

Working Demo

+0

Синтаксис неправильного человека. Либо оберните как параметр, 'animate ({" opacity ":" 0 "}, {duration: 1000, complete: function() { $ (this) .remove(); }});' или удалить ' полный: 'часть. – Leo

Смежные вопросы