javascript - 将不同的 CSS 动画委托给单个父项的不同子元素
问题描述
我可以在 AJAX/Fetch API 动态添加内容的内容中将两个不同的 CSS @keyframe 动画从一个父元素“委托”到两个不同的子元素吗?
对于此代码:
HTML
<div class='parent'>
<div class='child one'>Some text</div>
<div class='child two'>Other text</div>
</div>
CSS (SASS)
.parent
animation: BY 15s infinite alternate
@keyframes BY
0%
color: blue
100%
color: yellow
...子元素“.one”和“.two”中的文本受委托动画的影响。
如果这些元素是动态重新加载的,动画会不断地重新加载,而不是在每次加载时从 0% 重新开始。
但我需要一个不同的动画“.one”而不是“.two”。因此,如果我将动画直接应用于元素(这是合乎逻辑的):
CSS (SASS)
.child.one
animation: RG 15s infinite alternate
.child.two
animation: GY 15s infinite alternate
@keyframes RG
0%
color: red
100%
color: green
@keyframes BY
0%
color: blue
100%
color: yellow
...每当我动态重新加载元素时,动画都会以 0% 重新开始。
这个 codepen 显示了这种行为:
https://codepen.io/plagasul/pen/WNerBvO
谢谢
解决方案
我相信这可能与对象在 DOM 中的维护方式有关。由于div class="fixed BY"
没有从 DOM 中删除,因此它与在其上执行初始动画的对象相同,因此它的动画继续不间断。
然而,由于它innerHTML
正在发生变化,正在发生的事情是内部 DOM 对象正在被销毁并正在创建新内容。动画在被添加到 DOMclass="RG"
时开始,从而创建了这个 flash。
推荐阅读
- firebase - 无法通过 StreamProvider 获取 Firebase 用户
- reactjs - React Hooks with Axios,更新状态,下拉列表不重复
- c++ - Boost program_options 将多个配置文件解析结果存储到一个 parsed_options
- python - 用于制作 python 装饰器类的精益接口
- python - stem.connection.IncorrectSocketType:无法使用控制套接字
- move - 终端中的 Windows XP SP1 复制命令不起作用
- sql-server - 创建有权授予 dbo 模式的数据库用户/角色
- sql - SQL Server Always On 可用性组卡在“同步/恢复中”
- c# - 为什么向 C# 程序添加新代码文件会导致创建表单(菜单)?
- java - Modelmapper 无法映射整个模型?