动态设置keyframes
时间: 2023-06-28 18:04:56 浏览: 150
@keyframes规则实现多重背景的CSS动画
在CSS中,可以使用@keyframes规则来创建动画序列,然后将其应用到元素上。要动态设置keyframes,可以使用JavaScript来创建动态的样式规则并将其插入到文档中。
以下是一个简单的示例,展示如何使用JavaScript动态设置keyframes:
```html
<div class="box"></div>
<button onclick="startAnimation()">开始动画</button>
```
```css
.box {
width: 100px;
height: 100px;
background-color: red;
animation-duration: 2s;
animation-name: dynamic-animation;
}
@keyframes dynamic-animation {
from {
transform: scale(1);
}
to {
transform: scale(2);
}
}
```
```javascript
function startAnimation() {
// 创建一个style标签,并将其添加到head中
var style = document.createElement('style');
document.head.appendChild(style);
// 将动态生成的keyframes规则添加到style标签中
var sheet = style.sheet;
sheet.insertRule(`@keyframes dynamic-animation {
from {
transform: scale(1);
}
to {
transform: scale(3);
}
}`, sheet.cssRules.length);
// 将动画应用到元素上
var box = document.querySelector('.box');
box.style.animationName = 'dynamic-animation';
}
```
当用户点击“开始动画”按钮时,会动态生成一个@keyframes规则并将其添加到页面的<head>标签中的<style>标签中。然后,使用JavaScript将该动画应用到元素上,并开始播放动画。这样就可以通过JavaScript动态设置keyframes了。
阅读全文