CSS3动画制作的简单示例
作者:互联网
2026-04-02
CSS3 大大强化了制作动画的能力,但是如果要做出图案比较复杂的动画,选择 GIF 依然是一个不错的选择。今天给大家介绍一个使用 CSS animation 配合雪碧图(CSS sprite)来制作动画的方法,可以做出类似于 GIF 动画的效果。CSS3 Animation steps函数
首先看看,CSS3 animation的兼容性。可以看到基本上主流浏览器都支持了 animation 属性,chrome、safari、opera和移动端的浏览器带上前缀就可以支持。
利用雪碧图来制作动画使用了 CSS3 Animation 里面的一个重要的函数 steps。
animation 本身是一个复合的属性,它包含了 animation-name,animation-timing-function,animation-iteration-count,animation-direction,animation-play-state,animation-fill-mode 六个属性。
steps 就是属于 animation-timing-function 中的一个函数。
animation-timing-function 平时我们用的比较多的是默认的一些动画曲线值 ease、ease-in 等等。而 steps 则可以由我们控制动画被分成多少个部分进行。
steps(n,[start|end]) 传入一到两嘅个参数,第一个参数意思是把动画分成 n 等分,然后动画就会平均地运行。第二个参赛默认值是 start 表示从动画的开头开始运行,相反,end 就表示从动画的结尾开始运行。
因此,我们利用雪碧图和 steps 函数制作动画的原理就是,雪碧图包含了动画图片的每一帧,然后利用 steps 函数确定固定时间内动画运行的部分等于动画的帧数,从而实现动画效果。动画实例
用猥琐的兔斯基做例子╮( ̄▽ ̄")╭
首先我们要切图,把动画的每一帧切成这样的图:
切图如果大家不想折腾,推荐在线合并雪碧图的工具。
然后写 keyframes
CSS Code复制内容到剪贴板- @-webkit-keyframestuski{
- 0%{
- background-position:0;
- }
- 100%{
- background-position:-576px0;
- }
- }
- @-moz-keyframestuski{
- 0%{
- background-position:0;
- }
- 100%{
- background-position:-576px0;
- }
- }
- @keyframestuski{
- 0%{
- background-position:0;
- }
- 100%{
- background-position:-576px0;
- }
- }
调用动画
CSS Code复制内容到剪贴板- #tuski{
- -webkit-animation:tuski.5ssteps(12)infinite;
- -moz-animation:tuski.5ssteps(12)infinite;
- animation:tuski.5ssteps(12)infinite;
- }
与 GIF 相比,这种动画可以让我们手动调整动画运行的速度。
点这里看完整的代码。
大功告成。
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
WebSocket 连接池生产级实现:实时行情高可用与负载均衡
使用 Python 合并与拆分 Excel 单元格的实用方法
Pandas数据清洗完整指南:8大核心技巧详解
NumPy+Pandas数据分析基础完全指南
AI Agent 接入 Zvec (一):MCP 篇
python 更新Obsidian
用Manim实现动态交点计算--从一个动点问题说起
用 AI 解决数据库性能问题的方法论
前端害怕被蒸馏 快速入门Python 【demo_03】
Python 操作 Word 文档节与页面设置
AI精选
