防止CSS动画在移除类时停止的方法
P粉412533525
P粉412533525 2023-08-29 16:15:06
0
1
431

我有一个网格。 当我从后端收到更新消息时,我需要在3秒内用橙色突出显示行。 当我收到更新时,我将css类'highlight'添加到我的行中并播放我的动画。

.highlight { animation-name: highlight; animation-duration: 3s; } @keyframes highlight { 0% { background-color: orange; } 99.99% { background-color: orange; } }

由于应用程序中消息流的某些原因,我需要在3秒结束之前移除highlight类,这样我的动画就会停止工作。我希望我的动画能一直播放到3秒结束。

如何使我的动画即使我删除了highlight类也能播放到结束?

P粉412533525
P粉412533525

全部回复 (1)
P粉265724930

一种可能的方法是向元素添加一个data-属性,然后向其添加一个animationend事件监听器,以便在动画完成时,事件监听器知道要移除该类。请参见下面的示例。

document.getElementById('clicky').addEventListener('click', () => { const element=document.querySelector('.highlight'); element.setAttribute('data-remove-class', 'highlight'); element.innerHTML='将在动画结束时移除类'; }); document.querySelector('.highlight').addEventListener('animationend', (e) => { const removeClass = e.target.getAttribute('data-remove-class'); if (removeClass == 'highlight') { e.target.classList.remove(removeClass); e.target.removeAttribute('data-remove-class'); e.target.innerHTML='类已移除!'; } });
.highlight { animation-name: highlight; animation-duration: 3s; } @keyframes highlight { 0% { background-color: yellow; } 99.99% { background-color: orange; } }
正在动画中!
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!