Как добавить css анимацию в javascript коду через . style

Есть код javascript:

document.getElementById('click').addEventListener('click', function() {
    document.getElementById('click').style.animation = "img_show"
} )

и css:

@keyframes show {
    0% {
        opacity: 0.2;
        scale: 0;
    }
}
.img_show {
    transition: 100ms;
    animation: show 200ms;
}

и html:

<img src="url картинки" id="click" class="img_show" alt="печенка">

Я пытался добавить анимацию к картинке с помощью .style в javascript коде, но не получилось. скажите пожалуйста как это сделать, но только при клике


Ответы (1 шт):

Автор решения: Алексей Шиманский

В animation надо вставить имя анимации и параметры анимации

document.getElementById('click').addEventListener('click', function() {
    document.getElementById('click').style.animation = "show 1s linear infinite"
} )
@keyframes show {
    0% {
        opacity: 0.2;
        scale: 0;
    }
}
.img_show {
    transition: 100ms;
    animation: show 200ms;
}
<img src="url картинки" id="click" class="img_show" alt="печенка">


Ну или добавить просто класс с анимацией (обратите внимание, что для демонстрации я добавил немного данных в CSS и удалил класс у элемента):

let myElement = document.getElementById('click');

myElement.addEventListener('click', () => {
    myElement.classList.add('img_show')
});

myElement.addEventListener("animationend", () => {
    myElement.classList.remove('img_show')
});
@keyframes show {
    0% {
        opacity: 0.2;
        scale: 0;
    }
}
.img_show {
    transition: 100ms;
    animation: show 1000ms;
}
<img src="url картинки" id="click" alt="печенка">

→ Ссылка