Задать вопрос
@Denoro55

Как удалить элемент после анимации?

var animator = $('.animator');

setInterval(function(){
  var obj = $('<div></div>');
  obj.addClass('block');
  animator.append(obj)
},500)

$('body').on('animationend','.block',function(e){
	$(this).remove();
})


Почему то удаляются все блоки когда один из них закончил анимацию

https://jsfiddle.net/epcyx9jw/
  • Вопрос задан
  • 234 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
удаляются все блоки когда один из них закончил анимацию

Удаляется один. А у остальных анимация сбрасывается. Потому что анимация привязана к порядковой позиции элемента внутри родителя относительно соседей. Убрали первый, у остальных позиция изменилась, анимация сбросилась - поэтому кажется, будто элементы были удалены (а новые внезапно добавились).

Анимацию надо привязывать к чему-то, что своего значения не изменит. Например, можно добавлять элементам дополнительные классы вида block-*, и так же через @for генерировать для них css, как сейчас у вас это делается для :nth-child(*). Например.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nvdfxx
Senior Pomidor developer
вы все блоки с классом .block удаляете, дайте ссылку на фиддл
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы