前端序列帧动画实现
2023-06-13 09:12:15 时间
原理
1.UI 提供精灵图/雪碧图(就是将序列帧排在一张图片上的图)
2.通过代码不断改变图片的位置,从而形成动画效果
代码实现
<style>
.logo_gif {
width: 300px; // 单个动画帧尺寸
height: 300px;
cursor: pointer;
background-image: url(./sequence.png);
background-size: 100%;
background-position-y: 0;
animation: mouse-in 1.5s;
animation-timing-function:steps(26); // 动画帧数量
animation-iteration-count:infinite // 动画循环播放
}
@keyframes mouse-in{
from{
background-position-y: 0;
}
to{
background-position-y: -7800px; // 根据 元素大小*动画帧数量得出
}
}
</style>
</head>
<body>
<div class="logo_gif" ></div>
</body>
注意点
animation-timing-function:steps();
;里面的数字为动画帧数量也就是雪碧图里面的图片数量 background-position-y
的值不能随便取,必须根据元素的大小乘以动画帧数量得出 如本例元素大小为300,虽然雪碧图的大小是 400 x 10400
我们不能写成
@keyframes mouse-in{
from{
background-position-y: 0;
}
to{
background-position-y: -10400px; // 错误
}
}
而是 300 * 26 = 7800
@keyframes mouse-in{
from{
background-position-y: 0;
}
to{
background-position-y: -7800px; // 正确
}
}
如果是 200的元素 则 background-position-y
的值为 200 * 26 = 5200
相关文章
- 数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
- 水波纹按钮动画
- jQuery动画,案例
- js动画和css3动画_js控制css动画
- 使用animation添加动画效果
- JavaScript 动画_jquery 动画
- CSS 06 动画
- 【Flutter】Animation 动画 ( Flutter 动画类型 | Flutter 动画的核心类 )
- 【Flutter】Animation 动画 ( AnimatedWidget 动画使用流程 | 创建动画控制器 | 创建动画 | 创建 AnimatedWidget 动画组件 | 动画运行 )
- 3D动画制作C4D软件2023中文版,Cinema 4D(C4D)软件下载安装教程
- Adobe An动画制作软件2017-2023中文版 win/mac电脑下载安装教程
- jQuery动画简介
- Redis之动画精讲(动画讲解redis)