用css3做一个求婚小动画
概述
本案例主要是运用到了css3的animation、keyframes、transform等属性,熟悉了,就可以做更多的其他动画效果,这几个属性功能非常强大。
详细
首先,我们先来看看效果图哟。
一、准备工作
1、需要了解animation、keyframes、transform属性:
-
animation:是一个简写属性,用于设置六个动画属性
-
animation-name 规定需要绑定到选择器的 keyframe 名称
-
animation-duration 规定完成动画所花费的时间,以秒或毫秒计
-
animation-timing-function 规定动画的速度曲线
-
animation-delay 规定在动画开始之前的延迟
-
animation-iteration-count 规定动画应该播放的次数
-
animation-direction 规定是否应该轮流反向播放动画
-
keyframes:让开发者通过指定动画中特定时间点必须展现的关键帧样式(或者说停留点)来控制CSS动画的中间环节。这让开发者能够控制动画中的更多细节而不是全部让浏览器自动处理
-
transform:向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜
值 | 描述 | 测试 |
---|---|---|
none | 定义不进行转换。 | 测试 |
matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵。 | 测试 |
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 | |
translate(x,y) | 定义 2D 转换。 | 测试 |
translate3d(x,y,z) | 定义 3D 转换。 | |
translateX(x) | 定义转换,只是用 X 轴的值。 | 测试 |
translateY(y) | 定义转换,只是用 Y 轴的值。 | 测试 |
translateZ(z) | 定义 3D 转换,只是用 Z 轴的值。 | |
scale(x,y) | 定义 2D 缩放转换。 | 测试 |
scale3d(x,y,z) | 定义 3D 缩放转换。 | |
scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 | 测试 |
scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 | 测试 |
scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 | |
rotate(angle) | 定义 2D 旋转,在参数中规定角度。 | 测试 |
rotate3d(x,y,z,angle) | 定义 3D 旋转。 | |
rotateX(angle) | 定义沿着 X 轴的 3D 旋转。 | 测试 |
rotateY(angle) | 定义沿着 Y 轴的 3D 旋转。 | 测试 |
rotateZ(angle) | 定义沿着 Z 轴的 3D 旋转。 | 测试 |
skew(x-angle,y-angle) | 定义沿着 X 和 Y 轴的 2D 倾斜转换。 | 测试 |
skewX(angle) | 定义沿着 X 轴的 2D 倾斜转换。 | 测试 |
skewY(angle) | 定义沿着 Y 轴的 2D 倾斜转换。 | 测试 |
perspective(n) | 为 3D 转换元素定义透视视图。 | 测试 |
2、本例子要规划好各个环节动画出场时间顺序
二、例子分析
1、部分html代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < div class="w-t"> < div class="w-t-m">老婆,嫁给我好吗?</ div > < img src="png/boom.png" alt="" class="boom1"> < img src="png/boom.png" alt="" class="boom2"> < img src="png/boom.png" alt="" class="boom3"> </ div > < div class="w-p"> < div class="w-m"> < img src="png/man.png" alt=""> </ div > < div class="w-w"> < img src="png/woman.png" alt=""> </ div > < div class="w-f"> < img src="png/flower.png" alt=""> </ div > </ div > |
2、新郎动画分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | .w-m img{ margin-right : 0 ; float : right ; margin-top : 60px ; animation: toWoman 0.5 s ease . 5 s both ; } @keyframes toWoman{ 0% { opacity: 0 ; transform: translate( -200px ); } 100% { opacity: 1 ; transform: translate( 0 ); } } |
3、那朵花的css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | .w-f{ position : absolute ; z-index : 20 ; left : 50% ; margin-left : -30px ; margin-top : 75px ; } .w-f img{ width : 60px ; animation: show 0.4 s ease 1 s both ; } @keyframes show { 0% { opacity: 0 ; transform: scale( 0.1 , 0.1 ); } 100% { opacity: 1 ; transform: scale( 1 , 1 ); } } |
4、文字部分的css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | .w-t-m{ position : absolute ; left : 50% ; z-index : 10 ; line-height : 80px ; color : #ff720a ; letter-spacing : 5px ; opacity: 0 ; animation: titleBloom 1 s linear 1 s both ; font-size : 26px ; margin-left : -125px ; } @keyframes titleBloom{ 0% { transform: translate( -50px ); } 100% { opacity: 1 ; transform: translate( 0 ); } } |
5、文字边烟花的效果css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | .w-t img{ opacity: 0 ; animation: bloom 2 s ease 1.2 s infinite; } .w-t img.boom 2 { float : right ; animation: bloom 2 s ease 1.5 s infinite; } .w-t img.boom 3 { position : absolute ; margin-top : 40px ; animation: bloom 2 s ease 1.4 s infinite; } @keyframes bloom{ 0% { transform: scale( 0 , 0 ); } 100% { opacity: 1 ; transform: scale( 1 , 1 ); } } |
6、最后几束花的效果css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | .w-fls{ width : 820px ; margin : 0 auto ; } .w-fls img{ height : 120px ; z-index : 400 ; animation: showFlows 0.4 s ease 2.3 s both ; } @keyframes showFlows{ 0% { opacity: 0 ; transform: translate( 0 , 200px ); } 100% { opacity: 1 ; transform: translate( 0 ); } } .w -2 { margin-top : -130px ; padding-left : 100px ; } .w -2 img{ animation: showFlows 0.4 s ease 2.7 s both ; } |
三、演示效果
四、文件截图以及运行操作
1、文件截图
2、运行操作:
双击index.html即可看到效果。
五、浏览器兼容性
1、目前只兼容ie10+,firefox,360浏览器等主流浏览器
注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?