javascript - CSS动画突然结束
问题描述
我创建了一个微调器动画。单击微调器时,JS 添加类“加载”并开始旋转。但是如果我删除这个类,它会返回到以前的位置而没有动画。
我试着用这个:
animation-fill-mode: forwards;
,但结果是一样的。
有我的CSS:
.loading {
animation: spin 1s linear infinite 0s forwards;
}
@keyframes spin{
from{
transform: rotate(0deg)
}
to{
transform: rotate(360deg)
}
}
和 HTML:
<i class="material-icons refresh-icon" onclick="$(this).toggleClass('loading');">refresh</i>
解决方案
感谢您的建议。我使用 JS 和动画迭代事件来做到这一点。
HTML:
<div class="spinner">
<i class="material-icons refresh-icon" onclick="spinner(this)">refresh</i>
</div>
JS:
const spinner = el => {
if($(el).hasClass('lock')) return;
if($(el).hasClass('loading')){
$(el).addClass('lock').one('animationiteration webkitAnimationIteration', function() {
$(el).removeClass('loading').removeClass('lock');
});
}else{
$(el).addClass('loading');
}
}
推荐阅读
- graph - 如何将 GRAPH 变量传递给 SPARQL 中的 FROM 语句?
- python - Python ipywidgets 切换按钮样式颜色
- javascript - 如何将两个块元素附加到一个div?
- r - 如何在r中的箱线图之间创建单独的线图
- flutter - 如何解决:在 mac 中运行 pod install 时出错
- javascript - Next.js 使用翻译使页面道具更小
- typescript - 为什么 TypeScript 会跟踪函数静态属性的突变?
- ios - Segue/unwind 反复导致内存在加载视频时不断增加
- regex - 正则表达式用破折号匹配未知字符
- python - 无法为 Confluent Cloud 设置创建本地 docker-compose 文件