javascript - 如何完全从 JavaScript 定义 CSS 动画?
问题描述
我希望将 CSS 动画应用于完全由 JavaScript 函数生成的 HTML 项目。我的代码涉及通过可自定义的设置和功能定义动画的每个部分,这就是为什么这是必要的。通过在 JS 中执行以下操作来定义动画本身没有问题:
element.style.animation = "sprite_anim 1.0s steps(4) infinite"
问题在于关键帧:它们通常需要是 CSS 文件中的静态定义。
@keyframes sprite_anim {
from {
background-position: 0px 0px;
}
to {
background-position: -128px 0px;
}
}
在这种情况下,我希望代码也动态定义这 4 个偏移值;它们将为每个图像设置一次,因此可以为我将使用的每个组合生成一次性动画,但值本身是通过脚本计算的。从代码中定义我的关键帧的最不干扰、最兼容浏览器和最短的方法是什么?
解决方案
如果您的样式表中只有一组关键帧,定义如下:
@keyframes sprite_anim {
from {
background-position: var(--fromx) var(--fromy);
}
to {
background-position: var(--tox) var(--toy);
}
}
element.style.setProperty("--tox", valueforx)
您可以使用等为 JS 中的每个图像设置这些变量。
推荐阅读
- flutter - 如何使用静态填充并排创建 3 个响应式 AspectRatios
- winforms - 停止安装程序以删除以前的安装
- variables - 如何计算两个二项式随机变量的协方差?
- python - 不要在循环中使用函数的每个参数
- reactjs - 如何在 React Native 中处理 axios HTML 响应
- android - 注意:使用 -Xlint:deprecation 重新编译。注意:某些输入文件使用或覆盖已弃用的 API
- bash - .bashrc 中的 Git 分支名称未更新
- php - 从图像调用时使用 PHP 创建 HTML 内容
- ibm-cloud - 是否可以将 terraform 与 IBM 经典基础架构一起使用?
- laravel - 在 laravel 中下载 pdf 会给出不同符号的错误,而不仅仅是下载文件