利用CSS3实现炫酷的飞机起飞动画


Posted in HTML / CSS onSeptember 17, 2016

先来看看效果图

利用CSS3实现炫酷的飞机起飞动画

利用CSS3实现炫酷的飞机起飞动画

有点遗憾的是云朵不好画,用图片代替了

实例源码

复制代码
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Plane</title>
<style type="text/css">
*{margin:0;padding:0;}
body{
height: 700px;
background: rgb(42, 121, 146);
background: linear-gradient(to top right,rgba(209,228,234,1),rgb(42, 121, 146));
overflow: hidden;
font-family: Microsoft Yahei;
}
.sky{
width:100%;
height:100%;
position: absolute;
background: url("//img.jbzj.com/file_images/article/201609/2016917172009472.png") no-repeat;
-webkit-animation:cloud 40s linear infinite;
animation:cloud 40s linear infinite;
}
@keyframes cloud{
from{background-position:1800px -100px;}
to{background-position:-1200px -100px;}</p> <p> }
.plane{
height:300px;
width:490px;
position:absolute;
bottom:-14px;
left:25%;
z-index: 3;
-webkit-animation: planeFly 12s linear;
animation: planeFly 12s linear;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.plane .frame,.plane .tube,.plane .tube::after,.plane .tube::before,.plane .frame::after,.plane .wrings-left,.plane .wrings-right,.plane .wrings-right::after,.plane .wrings-left::after,.plane .tail-left,.plane .tail-right,.plane .tail-top,.plane .tail-top::after{
background: #fff;
border:1px solid #000;
}
.plane .frame{
z-index:1;
height:60px;
width:405px;
position: absolute;
top:100px;
right:50px;
border-radius:120% 160% 50% 220%;
-webkit-transform:rotate(-5deg);
transform:rotate(-5deg);
}
.plane .afterbody{

}
.plane .frame::after{
content: "";
height: 56px;
width: 400px;
position: absolute;
top: 8px;
left: 25px;
border-radius: 120% 167% 113% 100%;
clip: rect(0px 410px 60px 370px);
}
.plane .frame::before{
content: "";
height: 30px;
width: 50px;
position: absolute;
top:5px;
right: -2px;
border-radius: 50% 50% 50% 50%;
-webkit-transform: rotate(10deg);
transform: rotate(10deg);
border-right: 1px solid #000;
background: #fff;
clip: rect(16px 70px 40px 31px);
z-index: 1;</p> <p> }
.plane .frame .windows{
position:absolute;
top:21px;
left:100px;
width:7px;
height: 12px;
background: #666;
box-shadow: 15px 0px 0px #666,30px 0px 0px #666,45px 0px 0px #666,75px 0px 0px #666,90px 0px 0px #666,105px 0px 0px #666,120px 0px 0px #666,135px 0px 0px #666,150px 0px 0px #666,165px 0px 0px #666,195px 0px 0px #666,210px 0px 0px #666,225px 0px 0px #666,240px 0px 0px #666;
-webkit-transform:rotate(1deg);
transform:rotate(1deg);
}
.plane .frame .door{
position:absolute;
top: 17px;
left: 75px;
width: 10px;
height: 14px;
border:1px solid #333;
}
.plane .brand{
position: absolute;
top:38px;
right:58px;
color:#ef7b57;
font-size: 13px;
font-weight: 600;
-webkit-transform:rotate(1deg);
transform:rotate(1deg);
}
.plane .frame .pilothouse{
position:absolute;
top:26px;
right:13px;
width:7px;
height:10px;
background: #666;
z-index: 5;
}
.plane .frame .pilothouse::after{
content: "";
position:absolute;
top:0px;
left:10px;
width:10px;
height:9px;
background: #666;
z-index: 5;
border-bottom-right-radius:100%;
}
.plane .tube{
width:40px;
height:20px;
border:1px solid #000;
position:absolute;
border-radius: 15% 0% 0% 25%;
border-left:none;
-webkit-transform:skewX(5deg);
transform:skewX(5deg);
}
.plane .tube::after{
content:"";
width:8px;
height:20px;
position: absolute;
top:-1px;
right:-5px;
border-radius: 5% 28% 47% 5%;</p> <p> }
.plane .tube-a{
top:24px;
left:202px;
}
.plane .tube-b{
top:60px;
left:238px;
}
.plane .tube-c{
top:175px;
left:258px;
z-index: 3;
}
.plane .tube-d{
top:218px;
left:245px;
z-index: 3;
}
.plane .tube .cover{
width:26px;
height:8px;
background: #fff;
position: absolute;
border-top:1px solid #000;
border-right:1px solid #000;
border-radius: 0% 50% 0% 0%;
-webkit-transform:rotate(7deg);
transform:rotate(7deg);
left:0;
top:13px;
}
.plane .tube-a .cover,.plane .tube-b .cover{
width:34px;
height:14px;
border-right:none;
}
.plane .tube-c .cover{
left:1px;</p> <p> }
.plane .wrings-left{
width:140px;
height:39px;
transform-origin: right top;
-webkit-transform:rotate(45deg) skewX(-43deg);
transform:rotate(45deg) skewX(-43deg);
border-top-left-radius:10%;
border-bottom-left-radius:10%;
/*border-right:none;*/
position:absolute;
top:105px;
left:155px;
}
.plane .wrings-left::after{
content:"";
width:147px;
height:30px;
position: absolute;
top:21px;
left:-2px;
-webkit-transform:rotate(10deg) skewX(10deg);
transform:rotate(10deg) skewX(10deg);
border-top:none;
border-radius:0% 0% 0% 10%;
}
.plane .wrings-right{
width:145px;
height:55px;
transform-origin: right top;
-webkit-transform:rotate(-72deg) skewX(23deg);
transform:rotate(-72deg) skewX(23deg);
border-top-left-radius:10%;
border-bottom-left-radius:10%;
border-bottom-right-radius:5%;
position:absolute;
top:145px;
left:97px;
z-index: 3;
}
.plane .wrings-right::after{
content:"";
width:147px;
height:40px;
position: absolute;
top:-12px;
left:-2px;
-webkit-transform:rotate(-10deg) skewX(-10deg);
transform:rotate(-10deg) skewX(-10deg);
border-bottom:none;
border-radius:10% 5% 0% 0%;
}
.plane .wrings-left p,.plane .wrings-left p::after,.plane .wrings-right p,.plane .wrings-right p::after{
height: 8px;
position: absolute;
border: 1px solid #aaa;
}
.plane .wrings-left p{
width: 50px;
top: 47px;
left: 70px;
-webkit-transform:rotate(10deg) skewX(10deg);
transform:rotate(10deg) skewX(10deg);
z-index: 1;
border-bottom: none;
}
.plane .wrings-left p::after{
content: "";
width: 46px;
top: 0px;
left: -58px;
border-bottom: none;
}
.plane .wrings-right p{
width: 50px;
top: -16px;
left: 76px;
-webkit-transform: rotate(-10deg) skewX(-10deg);
transform: rotate(-10deg) skewX(-10deg);
z-index: 1;
border-top:none;
}
.plane .wrings-right p::after{
content:"";
width: 49px;
top: 0px;
left: -60px;
border-top:none;
}
.plane .tail-left,.plane .tail-right{
transform-origin: right top;
border-top-left-radius:10%;
border-bottom-left-radius:10%;
position:absolute;
}
.plane .tail-left{
width:50px;
height:35px;
-webkit-transform:rotate(45deg) skewX(-43deg);
transform:rotate(45deg) skewX(-43deg);
border-right:none;
top:143px;
left:42px;
}
.plane .tail-right{
width:45px;
height:30px;
-webkit-transform:rotate(-75deg) skewX(20deg);
transform:rotate(-75deg) skewX(20deg);
border-bottom-right-radius:5%;
top:138px;
left:-13px;
z-index: 4;
}
.plane .tail-top{
width: 60px;
height: 25px;
-webkit-transform: rotate(50deg) skewX(-30deg);
transform: rotate(50deg) skewX(-30deg);
border-top-left-radius: 20%;
border-bottom-left-radius: 20%;
position: absolute;
top: 96px;
left: 12px;
border-bottom: none;

z-index:3;
}
.plane .tail-top::before{
content: "";
width: 60px;
height:20px;
position: absolute;
top: 9px;
left: 1px;
border-bottom:1px solid #000;
border-right:1px solid #000;
-webkit-transform: rotate(13deg) skewX(13deg);
transform: rotate(13deg) skewX(13deg);
background:#fff;
}
.plane .tail-top::after{
content: "";
width: 50px;
height: 40px;
border-width:2px;
width: 15px;
height: 41px;
border-width: 2px;
border-top-right-radius: 50%;
border-bottom-right-radius: 28%;
-webkit-transform: skewX(24deg);
transform: skewX(24deg);
position: absolute;
top: -42px;
left: 38px;
border-right: 0;
border-top: 0;
border-left: 0;
background: transparent;
}
.plane .tail-top .paint,.plane .tail-top .paint::before{
position: absolute;
top: 0px;
background:rgba(197,35,7,.9);
}
.plane .tail-top .paint{
width: 67px;
height: 23px;
left: 0px;
z-index: 5;
border-radius: 15% 0% 0% 10%;
}
.plane .tail-top .paint::before{
content: "";
width: 31px;
height: 37px;
left: 64px;
border-radius: 0% 0% 400% 0%;
-webkit-transform: rotate(8deg) skewY(-8deg);
transform: rotate(8deg) skewY(-8deg);
}
.plane .tail-top .paint p{
color:#fff;
padding-left:13px;
padding-top:1px;
font-size:16px;

}
.earth{
width:100%;
height: 250px;
position:absolute;
left:0;
bottom:0px;
-webkit-animation: earthDown 12s 3s linear;
animation: earthDown 12s 3s linear;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.earth .street {
background:#7a7a7a;
height:130px;
width:102%;
position:absolute;
bottom:65px;
box-shadow:0 1px 16px rgba(111, 35, 51, 0.4) inset;
}
.earth .street:after {
content:"";
display:block;
position:absolute;
width:100%;
height:0px;
bottom:0px;
border-bottom:3px solid #72625a;
z-index:1;
}
.earth .street-stripe {
background:#d4d4d4;
height:8px;
width:100px;
position:absolute;
bottom:65px;
left:-1000px;
border-radius:2px;
box-shadow:200px 0 0 #d4d4d4, 400px 0 0 #d4d4d4 , 600px 0 0 #d4d4d4 , 800px 0 0 #d4d4d4 , 1000px 0 0 #d4d4d4 , 1200px 0 0 #d4d4d4 , 1400px 0 0 #d4d4d4 , 1600px 0 0 #d4d4d4 , 1800px 0 0 #d4d4d4 , 2000px 0 0 #d4d4d4, 2200px 0 0 #d4d4d4, 2400px 0 0 #d4d4d4, 2600px 0 0 #d4d4d4;
-webkit-animation: streetMove linear 8s infinite;
animation: streetMove linear 8s infinite;
}
.earth .hill {
position: absolute;
bottom: 100px;
right: 0;
width: 100%;
height: 250px;
z-index:-1;
}
.earth .hill:after {
content: '';
position: absolute;
bottom: -100px;
right:0px;
width: 100%;
height:30%;
background-color: #94c943;
box-shadow:0 0 25px #cbf191 inset;
}
.earth .hill:before {
background-color: #93cc3a;
border-top-left-radius:90%;
border-top-right-radius: 100%;
bottom: -25px;
content: "";
height:60%;
left:-50%;
position: absolute;
-webkit-transform: rotate(2deg);
transform: rotate(2deg);
width: 150%;
box-shadow:0 0 5px #cbf191;
-webkit-animation: hillMove 8s linear;
animation: hillMove 8s linear;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.plane .base{
width:24px;
height:7px;
background: #333;
position: absolute;
border-radius: 0% 0% 40% 40%;
-webkit-animation:tyreOut 3s 10s linear;
animation:tyreOut 3s 10s linear;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;

}
.plane .base::before{
content:"";
display: block;
width:4px;
height:13px;
position: absolute;
top:0;
left:10px;
background: #333;
}
.plane .base-back{
top:160px;
left:145px;
}
.plane .base-front{
top:147px;
right:104px;
-webkit-transform:rotate(-5deg);
transform:rotate(-5deg);</p> <p> }
.plane .base .tyre{
width: 20px;
height: 20px;
border-radius: 50%;
background: #3f3f40;
position: absolute;
top: 11px;</p> <p> }
.plane .base .tyre:before {
content:'';
width: 10px;
height: 10px;
border-radius: 50%;
background: #bdc2bd;
position: absolute;
top: 5px;
left: 5px;
}
.plane .base .tyre-back{
left: 2px;
-webkit-animation:tyreRotate 5s ease-out;
animation:tyreRotate 5s ease-out;
}
.plane .base .tyre-front{
right:2px;
-webkit-animation:tyreRotate 4s ease-out;
animation:tyreRotate 4s ease-out;
}
.plane .base .tyre .gap{
background: #3f3f40;
width: 2px;
height: 4px;
position: absolute;
left: 9px;
top: 5px;
box-shadow: 0 6px 0 #3f3f40;
}
.plane .base .tyre .gap:before {
content:'';
display:block;
width:2px;
height:4px;
position:absolute;
top:3px;
left:-3px;
background:#3f3f40;
box-shadow:0 6px 0 #3f3f40;
-webkit-transform:rotate(-90deg);
transform:rotate(-90deg);
}
@keyframes tyreRotate{
from{-webkit-transform:rotate(-5400deg);}
to{-webkit-transform:rotate(0deg);}
}</p> <p> @keyframes hillMove{
0%{left:-200;}
100%{left:-1200px;}
}
@keyframes streetMove{
0%{left:0;}
100%{left:-1000px;}
}
@keyframes planeFly{
0%{left:0;bottom:0;transform:rotate(0deg);}
50%{left:15%;bottom:0;transform:rotate(-3deg);}
60%{left:18%;bottom:5%;transform:rotate(-5deg);}
100%{left:30%;bottom:35%;transform:rotate(0deg);}
}
@keyframes earthDown{
0%{bottom:0;}
25%{bottom:-30px;}
50%{bottom:-100px;}
100%{bottom:-300px;}
}
@keyframes tyreOut{
to{top:110px;}
}
</style>
</head>
<body>
<div class="sky"></div>
<div class="plane">
<div class="frame">
<div class="head"></div>
<div class="windows"></div>
<div class="door"></div>
<div class="pilothouse"></div>
<!-- <div class="afterbody"></div> -->
<div class="brand">
<p>AIRBUS</p>
</div>
</div>
<div class="base base-back">
<div class="tyre tyre-back">
<div class="gap"></div>
</div>
</div>
<div class="base base-front">
<div class="tyre tyre-front">
<div class="gap"></div>
</div>
</div>
<div class="wrings-left">
<p></p>
</div>
<div class="wrings-right">
<p></p>
</div>
<div class="tube tube-a">
<div class="cover"></div>
</div>
<div class="tube tube-b">
<div class="cover"></div>
</div>
<div class="tube tube-c">
<div class="cover"></div>
</div>
<div class="tube tube-d">
<div class="cover"></div>
</div>
<div class="tail-left"></div>
<div class="tail-right"></div>
<div class="tail-top">
<div class="paint">
<p>A380</p>
</div>
</div>
</div>
<div class="earth">
<div class="street">
<div class="street-stripe"></div>
</div>
<div class="hill">
</div>
</div>
</body>
</html>

总结
以上就是这篇文章的全部内容了,希望对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

HTML / CSS 相关文章推荐
CSS3 border-image详解、应用及jQuery插件
Aug 29 HTML / CSS
css3弹性盒模型实例介绍
May 27 HTML / CSS
CSS3简单实现照片墙
Dec 12 HTML / CSS
图解CSS3制作圆环形进度条的实例教程
May 26 HTML / CSS
css3实现文字扫光渐变动画效果的示例
Nov 07 HTML / CSS
CSS3实现王者荣耀匹配人员加载页面的方法
Apr 16 HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
Jul 11 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
Mar 17 HTML / CSS
AmazeUI图片轮播效果的示例代码
Aug 20 HTML / CSS
Html5同时支持多端sdk的小技巧
Nov 17 HTML / CSS
CSS实现九宫格布局(自适应)的示例代码
Feb 12 HTML / CSS
CSS3 3D制作实战案例分析
Sep 18 #HTML / CSS
CSS3中动画属性transform、transition和animation属性的区别
Sep 25 #HTML / CSS
利用CSS3实现毛玻璃效果示例源码
Sep 25 #HTML / CSS
CSS3实现简易版的刮刮乐效果
Sep 27 #HTML / CSS
纯DOM+CSS3实现简单的小风车动画
Sep 27 #HTML / CSS
灵活运用CSS3特性绘制简易版围棋效果
Sep 28 #HTML / CSS
CSS3 media queries + jQuery实现响应式导航
Sep 30 #HTML / CSS
You might like
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python面向对象编程基础实例分析
2020/01/17 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
会计电算化大学生职业规划书
2014/02/05 职场文书
平安建设实施方案
2014/03/19 职场文书
个人求职自荐信范文
2014/06/20 职场文书
群众路线领导对照材料
2014/08/23 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
运动会广播稿300字
2015/08/19 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA