CSS3制作3D战斗机

3 篇文章 0 订阅

先新建一个HTML文件按我这样打下去

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>CSS 3D战斗机</title>

<style>

* {

margin:0 auto;

}

html {

height:100%;

}

body {

height:100%;

display:flex;

justify-content:center;

align-items:center;

background:rgb(7,83,83);

perspective:3000px;

/*滤镜形成阴影效果*/

        filter:-shadow(0px 120px 10px rgba(0,0,0,0.5));

overflow:hidden;

}

main {

width:500px;

height:400px;

border:1px solid transparent;

/* perspective:3000px;

*/

        transform-style:preserve-3d;

/* transform:rotateX(-100deg);

*/

        animation:dong 20s linear infinite alternate;

cursor:pointer;

}

@keyframes dong {

0% {

}50% {

transform:rotateX(-80deg) rotateY(-80deg) rotateZ(0deg);

}

100% {

transform:rotateX(80deg) rotateY(80deg) rotateZ(45deg);

}

}div {

transform-style:preserve-3d;

/* transform:rotateX(90deg);

*/

}

#feiji {

width:500px;

height:300px;

/* background:teal;

*/

        position:relative;

/* transform:rotateX(-30deg);

*/

         /* border:1px solid white;

*/

         /* transform:rotateY(-90deg);

*/

         animation:zhuan1 10s linear infinite alternate;

}

@keyframes zhuan1 {

0% {

transform:rotateX(-40deg);

}

100% {

transform:rotateX(30deg)

}

}#tou {

width:170px;

height:50px;

/* background:red;

*/

        position:absolute;

left:0;

top:125px;

transform:rotateZ(-7deg);

}

#tou div {

width:0px;

height:0px;

border-top:25px solid transparent;

border-bottom:25px solid transparent;

border-left:0px solid transparent;

border-right:170px solid yellow;

position:absolute;

transform:rotateX(90deg);

}

#tou .tou-t {

border-right:170px solid rgb(180,180,179);

transform:rotateX(0deg)  rotateY(8deg) translateZ(-12px);

}

#tou .tou-t::before {

content:'J - 30';

width:100px;

color:white;

font-size:18px;

font-weight:bold;

position:absolute;

left:110px;

top:-5px;

font-family:黑体;

transform:rotate(5deg);

}

#tou .tou-b {

border-right:170px solid rgb(180,180,179);

transform:rotateX(0deg)  rotateY(-8deg) translateZ(12px);

}

#tou .tou-b::before {

content:'J - 30';

width:100px;

color:white;

font-size:18px;

font-weight:bold;

position:absolute;

left:110px;

top:-5px;

font-family:黑体;

transform:rotate(5deg);

}

#tou .tou-l {

border-right:170px solid rgb(214,214,214);

/* transform-origin:0% 0%;

*/

     transform:rotateX(90deg) rotateY(8.5deg);

top:13px;

}

#tou .tou-r {

border-right:170px solid rgb(180,180,179);

transform:rotateX(90deg) rotateY(-8.5deg);

top:-13px;

}

#tou .tou-r::before {

content:'';

width:0;

height:0;

border-top:20px solid transparent;

border-bottom:20px solid transparent;

border-left:0px solid transparent;

border-right:50px solid rgb(73,73,73);

position:absolute;

left:120px;

top:-20px;

}

#jishen {

width:180px;

height:50px;

/* background:tomato;

*/

        position:absolute;

top:125px;

left:170px;

}

#jishen div {

width:1px;

height:30px;

border-top:10px solid transparent;

border-bottom:10px solid transparent;

border-right:0px solid transparent;

border-left:179px solid rgb(180,180,179);

position:absolute;

transform:rotateX(0deg);

}

#jishen .jishen-t {

border-left:185px solid rgb(180,180,179);

transform:rotateX(90deg) rotateY(2deg) translateX(-5px);

top:-31px;

}

#jishen .jishen-t::before {

content:'';

width:0;

height:0;

border-top:20px solid transparent;

border-bottom:20px solid transparent;

border-left:80px solid rgb(73,73,73);

border-right:0px solid transparent;

position:absolute;

left:-185px;

top:-5px;

}

#jishen .jishen-b {

border-left:179px solid rgb(214,214,214);

transform:rotateX(90deg) rotateY(-6deg);

top:7px;

}

#jishen .jishen-l {

width:1px;

height:25px;

border-top:26px solid transparent;

border-bottom:0px solid transparent;

border-right:0px solid transparent;

border-left:185px solid rgb(180,180,179);

transform:rotateX(0deg) rotateY(3deg) rotateZ(-6deg) translateZ(20px) translateX(-4px);

top:-20px;

}

#jishen .jishen-r {

width:1px;

height:25px;

border-top:26px solid transparent;

border-bottom:0px solid transparent;

border-right:0px solid transparent;

border-left:185px solid rgb(180,180,179);

transform:rotateX(0deg) rotateY(-3deg) rotateZ(-6deg) translateZ(-20px) translateX(-5px);

top:-20px;

}

#jishen  #yi {

/* background:yellow;

*/

         position:absolute;

width:1px;

height:25px;

border-top:50px solid transparent;

border-bottom:0px solid transparent;

border-right:0px solid transparent;

border-left:165px solid rgb(180,180,179);

/* transform:rotateX(-90deg);

*/

}

#jishen #yi::before {

content:'';

position:absolute;

width:1px;

height:25px;

border-top:50px solid transparent;

border-bottom:0px solid transparent;

border-right:0px solid transparent;

border-left:164px solid rgb(121,121,119);

right:0;

top:-50px;

transform:scale(0.8) translateX(-20px);

}

#jishen  .yi-l {

transform:rotateX(-98deg) rotateZ(-90deg) translateX(100px);

position:absolute;

top:-20px;

left:-20px;

}

#jishen  .yi-r {

transform:rotateX(98deg)  rotateZ(-90deg) translateX(100px);

position:absolute;

top:-20px;

left:-20px;

}

#wei {

width:100px;

height:40px;

/* background:red;

*/

        position:absolute;

right:50px;

top:123px;

}

#wei div {

width:1px;

height:15px;

border-top:5px solid transparent;

border-bottom:5px solid transparent;

border-right:0px solid transparent;

border-left:40px solid rgb(250,41,41);

position:absolute;

transform:rotateX(0deg);

}

#wei .wei-l {

transform:rotateX(0deg) rotateY(10deg) rotateZ(-2deg) translateZ(11px);

}

#wei .wei-l::after {

content:'';

border-top:5px solid transparent;

border-bottom:5px solid transparent;

border-right:0px solid transparent;

border-left:40px solid rgb(250,41,41);

position:absolute;

left:0px;

transform:rotateX(0deg);

opacity:0;

transition:0.5s;

}

#wei .wei-r {

transform:rotateX(0deg) rotateY(-10deg) rotateZ(-2deg) translateZ(-11px);

}

#wei .wei-r::after {

content:'';

border-top:5px solid transparent;

border-bottom:5px solid transparent;

border-right:0px solid transparent;

border-left:40px solid rgb(250,41,41);

position:absolute;

left:0px;

transform:rotateX(0deg);

opacity:0;

transition:0.5s;

}

#wei .wei-t {

border-top:8px solid transparent;

border-bottom:8px solid transparent;

border-left:45px solid rgb(250,41,41);

transform:rotateX(90deg) rotateY(4deg);

top:-14px;

left:-3px;

}

#wei .wei-t::after {

content:'';

border-top:5px solid transparent;

border-bottom:5px solid transparent;

border-right:0px solid transparent;

border-left:40px solid rgb(202,243,19);

position:absolute;

left:0px;

transform:rotateX(0deg);

opacity:0;

transition:0.5s;

}

#wei .wei-b {

border-top:8px solid transparent;

border-bottom:8px solid transparent;

border-left:45px solid rgb(250,41,41);

transform:rotateX(90deg) rotateY(-10deg);

top:5px;

left:-3px;

}

#wei .wei-b::after {

content:'';

border-top:5px solid transparent;

border-bottom:5px solid transparent;

border-right:0px solid transparent;

border-left:40px solid rgb(202,243,19);

position:absolute;

left:0px;

transform:rotateX(0deg);

opacity:0;

transition:0.5s;

}

main:hover #wei div::after {

left:20px;

opacity:1;

}

#wei .wei-yt {

top:-38px;

width:1px;

height:15px;

border-top:20px solid transparent;

border-bottom:0px solid transparent;

border-right:0px solid transparent;

border-left:45px solid rgb(180,180,179);

transform:rotateZ(-83deg);

}

#wei .wei-yl {

height:10px;

border-top:15px solid transparent;

border-bottom:0px solid transparent;

border-right:0px solid transparent;

border-left:35px solid rgb(180,180,179);

transform:rotateY(-90deg) rotateX(-100deg) translateX(28px) rotateZ(10deg);

left:7px;

}

#wei .wei-yr {

height:10px;

border-top:15px solid transparent;

border-bottom:0px solid transparent;

border-right:0px solid transparent;

border-left:35px solid rgb(180,180,179);

transform:rotateY(90deg) rotateX(100deg) translateX(28px) rotateZ(10deg);

left:7px;

}

#feng {

width:200px;

height:2px;

background:white;

position:absolute;

transform:rotateX(30deg);

opacity:0;

filter:blur(2px);

}

#feng:nth-child(2) {

left:150px;

transform:translateZ(100px) translateY(-50px) rotateX(30deg);

}

#feng:nth-child(3) {

top:-0px;

left:100px;

transform:translateY(0px) rotateX(30deg);

}

#feng:nth-child(4) {

top:-50px;

left:300px;

transform:translateZ(-150px) rotateX(30deg) translateY(150px);

}

@keyframes move {

0% {

opacity:0;

}

20% {

opacity:0.8;

}

100% {

opacity:0;

left:400px;

}

}main:hover #feng {

animation:move 3s linear -1s infinite;

}

main:active #wei div::after {

animation:move1 1s linear -1s infinite;

}

@keyframes move1 {

0% {

opacity:0;

left:0;

}

100% {

opacity:1;

left:20px;

}

}

</style>

</head>

<body>

<main>

    <div id="feiji">

        <div id="tou">

            <div class="tou-t"></div>

            <div class="tou-b"></div>

            <div class="tou-l"></div>

            <div class="tou-r"></div>

        </div>

        <div id="jishen">

            <div class="jishen-t"></div>

            <div class="jishen-b"></div>

            <div class="jishen-l"></div>

            <div class="jishen-r"></div>

            <div id="yi" class="yi-l"></div>

            <div id="yi" class="yi-r"></div>

        </div>

        <div id="wei">

            <div class="wei-l"></div>

            <div class="wei-r"></div>

            <div class="wei-t"></div>

            <div class="wei-b"></div>

            <div class="wei-yl"></div>

            <div class="wei-yr"></div>

            <div class="wei-yt"></div>

        </div>

    </div>

    <div id="feng"></div>

    <div id="feng"></div>

    <div id="feng"></div>

    <div id="feng"></div>

</main>

</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值