css3 太极动画,css

css

*,

*:before,

*:after {

box-sizing: border-box;

}

html,

body {

min-height: 100vh;

}

body {

margin: 0;

display: -webkit-box;

display: flex;

-webkit-box-pack: center;

justify-content: center;

-webkit-box-align: center;

align-items: center;

background: #85cdca;

color: #368380;

font-family: 'Helvetica', 'Arial', sans-serif;

}

.wrapper {

width: 60vh;

height: 60vh;

position: relative;

-webkit-transform-style: preserve-3d;

transform-style: preserve-3d;

-webkit-transform: rotateX(-15deg);

transform: rotateX(-15deg);

}

.wrapper .angle {

position: absolute;

width: 100%;

height: 100%;

}

.wrapper .angle:nth-child(1) {

-webkit-transform: rotateY(-65deg);

transform: rotateY(-65deg);

}

.wrapper .angle:nth-child(2) {

-webkit-transform: rotateY(25deg);

transform: rotateY(25deg);

}

.wrapper .angle:nth-child(2) .spin {

animation-direction: reverse;

}

.wrapper .angle .spin {

width: 100%;

height: 100%;

-webkit-animation: spin 4s linear infinite;

animation: spin 4s linear infinite;

}

.wrapper .side {

width: 100%;

height: 100%;

display: -webkit-box;

display: flex;

-webkit-box-orient: vertical;

-webkit-box-direction: normal;

flex-direction: column;

-webkit-box-align: center;

align-items: center;

border-radius: 100%;

overflow: hidden;

}

.wrapper .side:before {

content: '';

display: block;

width: 6vh;

height: 6vh;

position: absolute;

bottom: 12vh;

background: black;

border-radius: 100%;

}

.wrapper .side .mask {

width: 75%;

height: 50%;

position: relative;

overflow: hidden;

}

.wrapper .side .mask:before, .wrapper .side .mask:after {

content: '';

display: block;

border-radius: 100%;

}

.wrapper .side .mask:nth-child(1) {

align-self: flex-end;

border-radius: 50% 0 0 50% / 75% 0% 0 75%;

}

.wrapper .side .mask:nth-child(1):before {

width: 30vh;

height: 30vh;

box-shadow: 0 0 0 60vh black;

border: 12vh solid black;

}

.wrapper .side .mask:nth-child(2) {

align-self: flex-end;

width: 50%;

}

.wrapper .side .mask:nth-child(2):before {

position: absolute;

width: 100%;

height: 100%;

-webkit-transform: translate(-50%, 0);

transform: translate(-50%, 0);

box-shadow: 0 0 0 60vh black;

}

.wrapper .side-two {

-webkit-transform: scaleY(-1);

transform: scaleY(-1);

}

.wrapper .side-two:before {

background: white;

}

.wrapper .side-two .mask:nth-child(1):before {

box-shadow: 0 0 0 60vh white;

border-color: white;

}

.wrapper .side-two .mask:nth-child(2):before {

box-shadow: 0 0 0 60vh white;

}

@-webkit-keyframes spin {

from {

-webkit-transform: rotate(0);

transform: rotate(0);

}

to {

-webkit-transform: rotate(-360deg);

transform: rotate(-360deg);

}

}

@keyframes spin {

from {

-webkit-transform: rotate(0);

transform: rotate(0);

}

to {

-webkit-transform: rotate(-360deg);

transform: rotate(-360deg);

}

}

.controls {

position: fixed;

bottom: 20px;

width: 100%;

display: -webkit-box;

display: flex;

-webkit-box-pack: center;

justify-content: center;

}

.controls label {

font-size: 12px;

border: 2px solid #368380;

padding: 5px 10px;

border-radius: 10px;

font-weight: 600;

cursor: pointer;

}

#toggleGuides {

visibility: hidden;

}

input#toggleGuides:checked ~ .wrapper .angle:nth-child(1) {

outline: 1px solid rgba(0, 0, 0, 0.4);

}

input#toggleGuides:checked ~ .wrapper .angle:nth-child(2) {

outline: 1px solid rgba(255, 255, 255, 0.4);

}

input#toggleGuides:checked ~ .wrapper .side-one {

border: 1px solid rgba(0, 0, 0, 0.4);

}

input#toggleGuides:checked ~ .wrapper .side-two {

border: 1px solid rgba(255, 255, 255, 0.4);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值