Как запустить событие «animationend», если я не могу установить анимацию CSS?

Если я установлю анимацию CSS на «элемент», все в порядке. Если анимация Css недоступна, как она работает, как анимация с нулевыми секундами в ES5?

function run() { ... }

element.addEventListener('animationend', run);

Ответить на

@Анураг Шривастава,

Я ошибаюсь или у меня неправильный следующий код? В любом случае возвращаемое значение равно "".

var el1 = document.getElementById("notAnimation");

console.info(el1.style.animation);

var el2 = document.getElementById("onAnimation");

console.info(el2.style.animation);
div {
  padding: 10px;
  margin: 20px;
}

#notAnimation {}

#onAnimation {
  animation: scale 10s ease-in-out;
}

@keyframes scale {
    0% {
      transform: scale(1);
      opacity: 1;
      color: black;
    }
    50% {
      transform: scale(0.95);
      opacity: .4;
      color: red;
    }
    100% {
      transform: scale(1);
      opacity: 1;
      color: black;
    }
}
<div id = "notAnimation">
  Not Animation
</div>

<div id = "onAnimation">
  Animation
</div>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
8
0
360
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете проверить, содержат ли element.style.WebkitAnimation и element.style.animation какое-либо значение, и выполнить run(), если значение равно ""

Редактировать Оказывается, .style вернет "" для любого значения. Что вам нужно, так это window.getComputedStyle() вместе с имуществом animationName. Если это none, анимации нет, иначе есть. Проверьте код ниже:

var el1 = document.getElementById("notAnimation");
console.info(window.getComputedStyle(el1)["animationName"])

var el2 = document.getElementById("onAnimation");
console.info(window.getComputedStyle(el2)["animationName"])
div {
  padding: 10px;
  margin: 20px;
}

#notAnimation {}

#onAnimation {
  animation: scale 10s ease-in-out;
}

@keyframes scale {
  0% {
    transform: scale(1);
    opacity: 1;
    color: black;
  }
  50% {
    transform: scale(0.95);
    opacity: .4;
    color: red;
  }
  100% {
    transform: scale(1);
    opacity: 1;
    color: black;
  }
}
<div id = "notAnimation">
  Not Animation
</div>

<div id = "onAnimation">
  Animation
</div>

Да, но как этот процесс управляет значением анимации «элемента» файла css? В любом случае будет возвращено значение "".

BOZ 05.03.2019 01:04

Он вернет "" только в том случае, если анимация не установлена, иначе будет возвращена строка, например. "myAnim 2s easy-in" Кроме того, вам необходимо проверить как .animation, так и .WebkitAnimation.

Anurag Srivastava 05.03.2019 01:06

Я переставил вопрос и добавил «фрагмент кода», как вы сказали. Со мной что-то не так?

BOZ 05.03.2019 01:49

Спасибо за помощь. Теперь он работает нормально. Но автоматически ли это определяет различные значения анимации, такие как webkit, ms, o?

BOZ 05.03.2019 10:54

Я думаю, что да, но вы должны перепроверить, чтобы быть уверенным.

Anurag Srivastava 05.03.2019 10:55

Другие вопросы по теме