javascript - 更改 CSS3 动画的开始
问题描述
我想创建一个带有变色行的表格(例如:从 12 点开始在半小时内从完全绿色背景变为完全红色)。我设法做到了这一点,但现在我想到了这样一种情况,即当时间行已经超过 10 分钟时调用该站点(因此不是半小时的渐变进度,而是只有 20 分钟,并且该行不会完全开始绿色) .
所以我想知道是否可以设置 CSS 动画的开始时间。也许在关键帧上?我真的不知道,因为过去我没有用 css3 工作太多,我会感谢任何信息 :)
[我的动画 css]
.timing {
background: linear-gradient(88deg, #05a400, #ff0000);
background-size: 400% 400%;
-webkit-animation: Gradient 180s linear infinite;
-moz-animation: Gradient 180s linear infinite;
animation: Gradient 180s linear infinite;
}
@-webkit-keyframes Gradient {
0%{background-position:0% 53%}
50%{background-position:100% 48%}
100%{background-position:0% 53%}
}
@-moz-keyframes Gradient {
0%{background-position:0% 53%}
50%{background-position:100% 48%}
100%{background-position:0% 53%}
}
@keyframes Gradient {
0%{background-position:0% 53%}
50%{background-position:100% 48%}
100%{background-position:0% 53%}
}
对不起,如果标题没有清楚地说明我的问题,我没有找到合适的词......
解决方案
你可以使用 CSS 变量来调整动画的开始时间,然后你可以简单地使用 JS 修改它:
document.querySelectorAll('.timing')[1].style.setProperty('--t','5s');
.timing {
background: linear-gradient(88deg, #05a400, #ff0000);
background-size: 400% 400%;
animation: Gradient 2s linear infinite var(--t,0s);
height:80px;
color:#fff;
font-size:30px;
}
@keyframes Gradient {
0% {
background-position: 0% 53%
}
50% {
background-position: 100% 48%
}
100% {
background-position: 0% 53%
}
}
<div class="timing">
This one will start immediately
</div>
<div class="timing">
This one will start after 5s
</div>
推荐阅读
- javascript - 设置 Object = [ ] 时返回不渲染,设置 Object = {} 时有效
- python - QFileDialog.getOpenFileName 将按钮文本从“打开”更改为“删除”
- javascript - 为什么 axios 使用 npm run prod 会抛出错误,而不是 npm run dev/watch?
- ios - 如何使用 Swift Codable 将复杂的 Json 打印到 CollectionView?
- regex - 如何在 lua 正则表达式中匹配此模式,以便它可以捕获字符串中的内容
- javascript - 使用 JavaScript 的基尔霍夫电流定律
- laravel - 试图通过一对多关系在laravel中获取非对象的属性“部门”
- python - 将多个数组与 numpy 数组相交的最佳方法是什么?
- riscv - RISC-V 中断,设置 MTIMECMP
- objective-c - TCP 套接字连接打印空白