ホームページ ウェブフロントエンド CSSチュートリアル CSS3を使ってかっこいい飛行機の離陸アニメーションを実現

CSS3を使ってかっこいい飛行機の離陸アニメーションを実現

Jul 02, 2018 am 10:07 AM
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("//files.jb51.net/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: &#39;&#39;;
   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:&#39;&#39;;
   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:&#39;&#39;;
   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>
 <p class="sky"></p>
 <p class="plane">
  <p class="frame">
   <p class="head"></p>
   <p class="windows"></p>
   <p class="door"></p>
   <p class="pilothouse"></p>
   <!-- <p class="afterbody"></p> -->
   <p class="brand">
    <p>AIRBUS</p>
   </p>
  </p>
  <p class="base base-back">
   <p class="tyre tyre-back">  
    <p class="gap"></p> 
   </p>
  </p>
  <p class="base base-front">
   <p class="tyre tyre-front">  
    <p class="gap"></p> 
   </p>
  </p>
  <p class="wrings-left">
   <p></p>
  </p>
  <p class="wrings-right">
   <p></p>
  </p>
  <p class="tube tube-a">
   <p class="cover"></p>
  </p>
  <p class="tube tube-b">
   <p class="cover"></p>
  </p>
  <p class="tube tube-c">
   <p class="cover"></p>
  </p>
  <p class="tube tube-d">
   <p class="cover"></p>
  </p>
  <p class="tail-left"></p>
  <p class="tail-right"></p>
  <p class="tail-top">
   <p class="paint">
    <p>A380</p>
   </p>
  </p>
 </p>
 <p class="earth">
  <p class="street">
   <p class="street-stripe"></p>
  </p>
  <p class="hill">
  </p>
  </p>
</body>
</html>
ログイン後にコピー

以上がこの記事の全内容です、皆さんの学習に役立つことを願っています。関連コンテンツについては、PHP 中国語 Web サイトにご注意ください。

関連する推奨事項:

立体的な立方体を実現するCSS3の3次元変形

CSS3を使用して地球の回転を実現する

角度と回転のアニメーション効果を実装する方法CSS3でも同じです

以上がCSS3を使ってかっこいい飛行機の離陸アニメーションを実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) 純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) Jun 28, 2022 pm 01:39 PM

純粋な CSS3 で波の効果を実現するにはどうすればよいですか?この記事ではSVGとCSSアニメーションを使って波のエフェクトを作成する方法をご紹介しますので、お役に立てれば幸いです。

航空会社、航空券の払い戻し・変更ルールを調整、中国国際航空は国内線無理由払い戻しクーポン×2枚を提供 航空会社、航空券の払い戻し・変更ルールを調整、中国国際航空は国内線無理由払い戻しクーポン×2枚を提供 Jan 08, 2024 pm 06:26 PM

1月6日の本サイトのニュースによると、中国南方航空と中国東方航空は、旅行不能につながる機種の変更、飛行機の便の変更などの要因を含む航空券のキャンセル・変更ルールの調整に関する発表を相次いで発表した。路線変更や経由便の遅延等を航空券の無料払い戻し・変更の対象に追加するとともに、病気による欠航の規定を緩和し、2024年1月10日午前0時より施行します。 、北京時間。中国南方航空は以下の調整を行いました: 無料航空券の払い戻しおよび変更の範囲を拡大し、ご旅行を妨げる航空機の種類の変更、フライトの停止遅延、空港送迎、不可抗力およびその他の要因などの要因を含めます。病気によるキャンセルおよび払い戻し規定の緩和 1. 病気のためご旅行ができないお客様は、中国南方航空が保有する国内線および国際線航空券の変更または払い戻しを申請することができます。 2.病気によるキャンセルの証明は支払請求書または入院保証金証明書となります(2つのうち1つを選択)

吉祥航空の「原神」が正式運航を開始し、初飛行週には記念搭乗券、お弁当、水筒などの特別な体験をお楽しみください。 吉祥航空の「原神」が正式運航を開始し、初飛行週には記念搭乗券、お弁当、水筒などの特別な体験をお楽しみください。 Nov 11, 2023 pm 06:37 PM

吉祥航空は11月11日、『原神』が初飛行に成功したことを発表するとともに、吉祥航空×原神をテーマにした周辺商品を発売した。周辺商品としては、1/150スケールで作られた787型機モデルや、『原神』3周年記念協力パスポートバッグ、3周年記念協力フライトブランケットなどがあります。 2023. 2024年11月8日から2024年11月8日まで、機材はボーイング787-9型ワイドボディ機で、座席数はビジネスクラス29席、エコノミークラス295席です。チケット購入方法:吉祥航空アプリを開き、ホームページの「原神3周年」のトップ画像をクリックし、「原神3周年テーマフライト」ランディングページにアクセスすると、予定されている「原神」のフライトが表示されます。出発時刻を選択して「予約」をクリック 最初の便のチケット購入ページに入る

CSSを上手に使って色々な変わった形のボタンを実現(コード付き) CSSを上手に使って色々な変わった形のボタンを実現(コード付き) Jul 19, 2022 am 11:28 AM

この記事では、頻繁に登場する様々な奇妙な形のボタンをCSSを使って簡単に実現する方法を紹介しますので、ぜひ参考にしてください。

スペースを取らずにCSS内の要素を非表示にする方法 スペースを取らずにCSS内の要素を非表示にする方法 Jun 01, 2022 pm 07:15 PM

2 つの方法: 1. display 属性を使用して、要素に「display:none;」スタイルを追加するだけです。 2. Position 属性と top 属性を使用して、要素の絶対位置を設定し、要素を非表示にします。要素に「position:absolute;top:-9999px;」スタイルを追加するだけです。

CSS3でレースボーダーを実装する方法 CSS3でレースボーダーを実装する方法 Sep 16, 2022 pm 07:11 PM

CSS では、border-image 属性を使用してレースの境界線を実現できます。 border-image 属性では、画像を使用して境界線を作成できます。つまり、境界線に背景画像を追加できます。背景画像をレース スタイルとして指定するだけで済みます。構文「border-image: url (画像パス) は、内側への画像境界線の幅。開始を繰り返すかどうか;"。

テキストカルーセルと画像カルーセルも純粋な CSS を使用して実現できることがわかりました。 テキストカルーセルと画像カルーセルも純粋な CSS を使用して実現できることがわかりました。 Jun 10, 2022 pm 01:00 PM

テキストカルーセルと画像カルーセルを作成するにはどうすればよいですか?皆さんが最初に考えるのはjsを使うかどうかですが、実はテキストカルーセルや画像カルーセルも純粋なCSSでも実現できますので実装方法を見ていきましょう。

CSS3でマウスクリックで画像を拡大する方法 CSS3でマウスクリックで画像を拡大する方法 Apr 25, 2022 pm 04:52 PM

実装方法: 1. ":active" セレクターを使用して、画像上のマウス クリックの状態を選択します; 2. 変換属性とscale() 関数を使用して、画像の拡大効果を実現します。構文 "img:active {transform : スケール(x 軸倍率、y 軸倍率);}"。

See all articles