html绘制城堡,HTML5动画 - 山谷城堡

CSS

语言:

CSSSCSS

确定

html {

background: #215560;

}

.container {

margin: auto;

height: 300px;

width: 300px;

animation: fade-in 2.5s;

}

.moon {

height: 60px;

width: 60px;

background: white;

border-radius: 50%;

position: absolute;

float: left;

margin: 0 5%;

}

.orientation {

margin-top: 20%;

transform: rotateX(-23deg) rotateY(-133deg) translateY(115px) translateZ(230px);

transform-style: preserve-3d;

}

.towers > *,

.bridges > *,

.wall > *,

.top,

.ocean,

.basics,

.top:after,

.side:after,

.side,

.tower2:after,

.tower2-support:before,

.tower2-support:after,

.support-side:before,

.support-side:after,

.waterbridge1:before,

.waterbridge1:after,

.waterbridge2,

.waterbridge2:after,

.waterfall,

.bridge1,

.bridge1:after,

.bridge2,

.bridge2:after,

.block1:before,

.block2:before,

.block3:before,

.block1:after,

.block2:after,

.block3:after,

.block4:before,

.block4:after,

.bridge3:after,

.wall-right:after,

.wall-depth:after,

.stair1:after,

.stair3:after,

.stair2:after,

.base-wrapper {

position: absolute;

transform-style: preserve-3d;

content: "";

}

.top {

border-left: 13px solid transparent;

border-bottom: 23px solid #f5d2d8;

transform: translateY(-29px) translateZ(0px);

}

.top:after,

.side:after {

height: 15px;

width: 4px;

background-size: 6px 6px;

box-shadow: 1px 0px rgba(78, 40, 63, 0.3);

}

.top:after {

background: repeating-linear-gradient(#f0bdc6, #f0bdc6 3px, transparent 3px, transparent 6px), repeating-linear-gradient(to right, #f0bdc6, #f0bdc6 2px, #d6abc9 2px, #664a9f 2px, #664a9f 4px, transparent 8px);

transform: translateX(-6px) translateY(15px) rotateZ(-90deg) translateZ(-4px);

}

.side {

border-left: 10px solid transparent;

border-bottom: 20px solid #f5a1b8;

transform: translateY(-23px) translateZ(7px) rotateZ(-30deg);

}

.side:after {

background: repeating-linear-gradient(#f089a4, #f089a4 3px, transparent 3px, transparent 6px), repeating-linear-gradient(to right, #f089a4, #f089a4 2px, #d6abc9 2px, #664a9f 2px, #664a9f 4px, transparent 8px);

transform: translateX(-5px) rotatex(-20deg) translateY(13px) rotateZ(-91deg) translateZ(3px);

}

.tower1 .t1-front {

height: 270px;

width: 11px;

}

.tower1 .t1-side {

height: 270px;

width: 10px;

transform: translateX(10px) rotateY(-90deg) translateY(-273px) translateZ(-1px);

}

.tower2 .t2-front {

height: 90px;

width: 11px;

}

.tower2 .t2-side {

height: 90px;

width: 10px;

transform: translateX(10px) rotateY(-90deg) translateY(-93px) translateZ(-1px);

}

.tower3 .t3-front {

height: 54px;

width: 11px;

}

.tower3 .t3-side {

height: 54px;

width: 10px;

transform: translateX(10px) rotateY(-90deg) translateY(-57px) translateZ(-1px);

}

.tower1 {

transform: translateY(-25px) translateZ(-115px);

}

.tower1 .t1-front {

background: linear-gradient(#f5d2d8, #f5d2d8, #cea7c2, #c9bad1);

}

.tower2 {

transform: translateX(-205px) translateY(100px) translateZ(23px);

}

.tower2 .t2-front {

background: linear-gradient(#f5d2d8, #f5d2d8, #957b98);

}

.tower2:after {

height: 15px;

width: 5px;

background: linear-gradient(#8e4667, #6c354e);

border-radius: 30% 30% 0 0;

transform: translateX(3px) translateY(-129px);

}

.tower2-support:before {

height: 3px;

width: 14px;

background: #8575a3;

transform: translateX(-3px) rotateY(-5deg) translateY(-1px) translateZ(2px);

}

.tower2-support {

height: 25px;

width: 11px;

background: linear-gradient(#957b98, #d6abc9);

transform: translateX(-3px) translateY(75px) translateZ(-163px);

}

.tower2-support:after {

height: 25px;

width: 4px;

background: #c06e83;

transform: translateX(10px);

}

.tower3 {

transform: translateY(150px) translateZ(-50px);

}

.tower3 .t3-front {

background: linear-gradient(#f5d2d8, #f1bec5, #626a9b, #31519c);

}

.t1-side,

.t2-side,

.t3-side {

background: linear-gradient(#f2819f, #f2819f, #f2819f, #d15883, #d169a8);

}

.tower3-support {

height: 23px;

width: 6px;

background: #224996;

transform: translateX(204px) translateY(92px) translateZ(-236px);

}

.tower3-support .support-side {

height: 23px;

width: 6px;

background: linear-gradient(#bd4d99, #957b98);

transform: translateX(4px) translateZ(2px) rotateY(90deg);

}

.support-side:before {

height: 0px;

width: 9px;

border-top: 5px solid #1c47a5;

border-left: 4px solid transparent;

transform: translateX(-5px) translateY(-5px);

}

.support-side:after {

height: 0px;

width: 6px;

border-top: 5px solid #1c47a5;

border-right: 4px solid transparent;

border-left: 4px solide transparent;

transform: translateX(7px) translateY(-8px) rotateZ(-30deg) translateZ(-11px);

}

.window {

height: 16px;

width: 4px;

background: #5b2d42;

border-radius: 55% 55% 0 0;

float: top;

transform: translateX(3px) translateY(4px);

}

.waterbridge1:before {

height: 34px;

width: 5px;

background: #f2819f;

transform: translateX(46px) translateY(-4px) rotateY(90deg) translateZ(-52px);

}

.waterbridge1 {

height: 33px;

width: 8px;

background: linear-gradient(#f2819f, #ffa4b5, #ffa4b5, #f5d2d8);

transform: rotateX(-85deg) translateX(46px) translateY(133px) rotateZ(180deg) translateZ(40px);

}

.waterbridge1:after {

height: 25px;

width: 12px;

background: linear-gradient(-140deg, #f2819f, #f2819f, #0aa9fb, #0aa9fb, #0aa9fb, #06d7fe);

transform: translateX(-39px) translateY(-33px) translateZ(-30px);

}

.waterbridge2 {

height: 20px;

width: 8px;

background: linear-gradient(#f2819f, #f089a4);

transform: rotateX(-85deg) translateX(13px) translateY(113px) rotateZ(180deg) translateZ(55px);

}

.waterbridge2:after {

height: 18px;

width: 3px;

background: #e9537a;

transform: rotateY(90deg) translateZ(-3px);

}

.waterfall {

height: 100px;

width: 15px;

animation: water 4s ease-in-out 2s infinite normal;

background: linear-gradient(-140deg, #06d7fe, #0aa9fb, #0aa9fb, #66ffff, #0aa9fb, #0aa9fb, #0066ff, #66ffff);

background-size: 200px 300px;

transform: translateX(-66px) translateY(130px) translateZ(-20px);

}

.bridge1 {

height: 120px;

width: 11px;

background: #ffdddd;

transform: rotateX(-82deg) translateX(40px) translateY(160px) rotateZ(180deg) translateZ(80px);

}

.bridge1:after {

height: 4px;

width: 120px;

background: linear-gradient(to right, #f292ad, #f193ab, #cc71aa);

transform: translateY(55px) translateX(-63px) rotateY(90deg) rotateZ(-90deg);

}

.bridge2 {

height: 13px;

width: 67px;

background: linear-gradient(to left, #f5d2d8, #f66da5, #f5d2d8, #f5d2d8);

transform: translateX(-88px) rotateX(90deg) rotateZ(-5deg) translateY(-45px) translateZ(-172px);

}

.bridge2:after {

height: 4px;

width: 67px;

background: linear-gradient(to left, #f5d2d8, #606096, #d6abc9, #d6abc9, #d8adcb);

transform: rotateX(90deg) translateX(2px) translateZ(56px);

}

.block-wrapper {

transform: translateY(10px) translateX(0px) rotateZ(-3deg);

}

.block1 {

height: 12px;

width: 12px;

transform: translateX(-19px) translateY(-14px) rotateZ(5deg);

}

.block2 {

height: 12px;

width: 12px;

transform: translateX(-38px) translateY(-28px) rotateZ(5deg);

}

.block3 {

height: 12px;

width: 12px;

transform: translateX(-57px) translateY(-42px) rotateZ(5deg);

}

.block4 {

height: 17px;

width: 17px;

transform: translateX(-84px) translateY(-60px) rotateZ(5deg);

}

.block1,

.block2,

.block3,

.block4 {

background: #ffdeef;

position: relative;

}

.block1:before,

.block2:before,

.block3:before {

height: 12px;

width: 6px;

background: #f2819f;

transform: skewY(-40deg) translateY(8px) translateX(12px);

}

.block1:after,

.block2:after,

.block3:after {

height: 6px;

width: 12px;

background: #e4c3d6;

transform: skewX(-47deg) translateY(-5px) translateX(-2px);

}

.block4:before {

height: 17px;

width: 9px;

background: #f2819f;

transform: skewY(-40deg) translateY(11px) translateX(16px);

}

.block4:after {

height: 7px;

width: 17px;

background: #eca8b4;

transform: skewX(-47deg) translateY(-7px) translateX(-3px);

}

.bridge3 {

height: 40px;

width: 11px;

background: linear-gradient(-130deg, #f089a4, #f089a4, #f5d2d8, #f5d2d8, #f5d2d8, #f5d2d8, #f2819f);

transform: rotateX(-86deg) translateX(5px) translateY(140px) rotateZ(180deg) translateZ(-25px);

}

.bridge3:after {

height: 47px;

width: 4px;

background: #ed7293;

transform: translateX(-3px) rotateY(90deg) translateY(-6px);

}

.wall-left {

height: 200px;

width: 4px;

background: linear-gradient(#f3a8bc, #f089a4);

transform: translateX(-9px) translateY(45px) translateZ(-110px);

}

.wall-curve {

fill: #f3a8bc;

transform: translateX(-183px) translateY(116px) translateZ(19px);

}

.wall-right {

height: 140px;

width: 15px;

background: linear-gradient(to top, #dc98b0, #ec8ea9, #f3a8bc);

transform: translateX(-200px) translateY(146px) translateZ(24px);

}

.wall-right:after {

height: 150px;

width: 5px;

background: linear-gradient(#6755a7, #ba569e 10px, #ea85a3 20px);

transform: translateX(15px);

}

.wall-depth {

height: 50px;

width: 4px;

background: #ea85a3;

transform: translateY(140px) translateX(50px) translateZ(-196px);

}

.wall-depth:after {

height: 22px;

width: 6px;

background: repeating-linear-gradient(to right, #f089a4, #f089a4 3px, #ea5c81 3px, #ea5c81 6px);

transform: translateY(-27px) translateX(47px) translateZ(-56px);

}

.wall-top {

height: 5px;

width: 40px;

background: repeating-linear-gradient(to left, #f5d2d8, #f5d2d8 5px, transparent 5px, #d03e6d 10px);

transform: translateX(-40px) translateY(38px) translateZ(-116px) rotateX(90deg);

}

.stair1,

.stair3 {

background: repeating-linear-gradient(to bottom, #f5d2d8, #f5d2d8 2px, #f089a4 2px, #f486a3 3px);

height: 45px;

width: 12px;

transform: translateX(319px) translateZ(-479px) skewX(-30deg);

}

.stair1:after,

.stair3:after,

.stair3:after {

height: 45px;

width: 3px;

background: #d470ae;

transform: translateX(11px);

}

.stair2 {

background: repeating-linear-gradient(30deg, #ffb4ba, #ffb4ba 2px, #e95d8e 2px, #f486a3 3px);

height: 13px;

width: 25px;

transform: rotateX(94deg) translateY(-90px) translateZ(-152px) skewY(-35deg);

}

.stair2:after {

height: 4px;

width: 25px;

background: #e085ad;

transform: translateY(-4px);

}

.stair3 {

transform: translateX(38px) translateZ(-202px) skewX(-33deg) translateY(28px);

}

.ocean {

height: 200px;

width: 200px;

background: linear-gradient(#06d7fe, #08b3f9);

margin: auto;

transform: rotateX(97deg) rotateZ(-3deg) translateX(-330px) translateY(70px) translateZ(-260px);

}

.ripple-wrapper {

transform: translateX(30px) translateY(105px);

}

.rip1 {

border: 4px solid white;

height: 65px;

width: 65px;

animation: ripple-effect 2.2s ease-in infinite, fade-in 2.2s ease-in infinite reverse;

}

.rip2 {

border: 4px solid white;

height: 55px;

width: 55px;

animation: ripple-effect 2s ease-in infinite .5s;

}

.base-wrapper {

transform: rotateY(90deg) rotateX(45deg) translateX(-3px) translateZ(20px) translateY(90px);

}

.square:nth-of-type(1n) {

height: 7px;

width: 7px;

animation: base 1s ease-in infinite alternate 1s;

background: white;

}

.square:nth-of-type(2n) {

height: 7px;

width: 7px;

animation: base 1s ease-in infinite alternate 2s;

background: white;

}

.square:nth-of-type(3n) {

height: 7px;

width: 7px;

animation: base 1s ease-in infinite alternate 0.5s;

background: white;

}

.square:nth-of-type(4n) {

height: 7px;

width: 7px;

animation: base 1s ease-in infinite alternate 1s;

background: white;

}

@keyframes fade-in {

0% {

opacity: 0;

}

100% {

opacity: 1;

}

}

@keyframes water {

0% {

background-position: 0% 50%;

}

50% {

background-position: 75% 50%;

}

100% {

background-position: 100% 50%;

}

}

@keyframes ripple-effect {

0% {

opacity: 100%;

transform: scale(0.4);

}

100% {

opacity: 0%;

transform: scale(1);

}

}

@keyframes base {

0% {

transform: scale(0.5);

}

100% {

transform: scale(1.2);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值