html设置旋转角度,CSS3 旋转角度控制

这段CSS代码创建了一个3D旋转效果,包含一个400px的容器,内部有多个小球以不同角度旋转并沿着X轴移动。动画通过设置不同的旋转角度和延迟时间,使得每个小球产生连续的视觉流动感。背景为黑色,整个布局居中对齐,显示了CSS在网页动画设计中的应用。
摘要由CSDN通过智能技术生成

CSS

语言:

CSSSCSS

确定

/* Rotation angle for the current item */

/* Angle between two items */

html,

body {

height: 100%;

}

body {

background: black;

display: -webkit-box;

display: -webkit-flex;

display: -ms-flexbox;

display: flex;

-webkit-box-align: center;

-webkit-align-items: center;

-ms-flex-align: center;

align-items: center;

-webkit-box-pack: center;

-webkit-justify-content: center;

-ms-flex-pack: center;

justify-content: center;

-webkit-box-orient: vertical;

-webkit-box-direction: normal;

-webkit-flex-direction: column;

-ms-flex-direction: column;

flex-direction: column;

}

.container {

width: 400px;

height: 400px;

position: relative;

border-radius: 50%;

-webkit-animation: spin 25s linear infinite;

animation: spin 25s linear infinite;

}

.subcontainer {

width: 25px;

height: 25px;

position: absolute;

top: 50%;

left: 50%;

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

-ms-transform: translate(-50%, -50%);

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

}

.balls {

width: 25px;

height: 25px;

position: absolute;

}

.balls:nth-child(1):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.07s;

animation-delay: 0.07s;

}

.balls:nth-child(1) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(24deg);

transform: rotateZ(24deg);

}

.balls:nth-child(2):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.14s;

animation-delay: 0.14s;

}

.balls:nth-child(2) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(48deg);

transform: rotateZ(48deg);

}

.balls:nth-child(3):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.21s;

animation-delay: 0.21s;

}

.balls:nth-child(3) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(72deg);

transform: rotateZ(72deg);

}

.balls:nth-child(4):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.28s;

animation-delay: 0.28s;

}

.balls:nth-child(4) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(96deg);

transform: rotateZ(96deg);

}

.balls:nth-child(5):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.35s;

animation-delay: 0.35s;

}

.balls:nth-child(5) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(120deg);

transform: rotateZ(120deg);

}

.balls:nth-child(6):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.42s;

animation-delay: 0.42s;

}

.balls:nth-child(6) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(144deg);

transform: rotateZ(144deg);

}

.balls:nth-child(7):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.49s;

animation-delay: 0.49s;

}

.balls:nth-child(7) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(168deg);

transform: rotateZ(168deg);

}

.balls:nth-child(8):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.56s;

animation-delay: 0.56s;

}

.balls:nth-child(8) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(192deg);

transform: rotateZ(192deg);

}

.balls:nth-child(9):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.63s;

animation-delay: 0.63s;

}

.balls:nth-child(9) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(216deg);

transform: rotateZ(216deg);

}

.balls:nth-child(10):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.7s;

animation-delay: 0.7s;

}

.balls:nth-child(10) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(240deg);

transform: rotateZ(240deg);

}

.balls:nth-child(11):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.77s;

animation-delay: 0.77s;

}

.balls:nth-child(11) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(264deg);

transform: rotateZ(264deg);

}

.balls:nth-child(12):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.84s;

animation-delay: 0.84s;

}

.balls:nth-child(12) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(288deg);

transform: rotateZ(288deg);

}

.balls:nth-child(13):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.91s;

animation-delay: 0.91s;

}

.balls:nth-child(13) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(312deg);

transform: rotateZ(312deg);

}

.balls:nth-child(14):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 0.98s;

animation-delay: 0.98s;

}

.balls:nth-child(14) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(336deg);

transform: rotateZ(336deg);

}

.balls:nth-child(15):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 1.05s;

animation-delay: 1.05s;

}

.balls:nth-child(15) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(360deg);

transform: rotateZ(360deg);

}

.balls:nth-child(16):after {

width: 25px;

height: 25px;

border-radius: 50%;

display: block;

content: "";

-webkit-animation: move 2s linear infinite;

animation: move 2s linear infinite;

-webkit-animation-delay: 1.12s;

animation-delay: 1.12s;

}

.balls:nth-child(16) {

left: -200px;

-webkit-transform-origin: 212.5px 12.5px;

-ms-transform-origin: 212.5px 12.5px;

transform-origin: 212.5px 12.5px;

-webkit-transform: rotateZ(384deg);

transform: rotateZ(384deg);

}

.balls:nth-child(3n+1):after {

background-color: #faaa13;

color: #faaa13;

}

.balls:nth-child(3n+2):after {

background-color: #f03e31;

color: #f03e31;

}

.balls:nth-child(3n+3):after {

background-color: #10a0ab;

color: #10a0ab;

}

@-webkit-keyframes spin {

from {

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

transform: rotate(-360deg);

}

}

@keyframes spin {

from {

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

transform: rotate(-360deg);

}

}

@-webkit-keyframes move {

0% {

-webkit-transform: translateX(0px);

transform: translateX(0px);

box-shadow: -2px 0px 2px, 5px 0px 2px, 10px 0px 2px, 15px 0px 2px, 20px 0px 2px, 25px 0px 2px, 30px 0px 2px;

}

23% {

box-shadow: none;

}

25% {

box-shadow: -2px 0px 2px, 5px 0px 2px, 10px 0px 2px, 15px 0px 2px, 20px 0px 2px, 25px 0px 2px, 30px 0px 2px;

-webkit-transform: translateX(400px);

transform: translateX(400px);

}

48% {

box-shadow: none;

}

50% {

-webkit-transform: translateX(400px);

transform: translateX(400px);

}

75% {

-webkit-transform: translateX(400px);

transform: translateX(400px);

}

100% {

-webkit-transform: translateX(0px);

transform: translateX(0px);

}

}

@keyframes move {

0% {

-webkit-transform: translateX(0px);

transform: translateX(0px);

box-shadow: -2px 0px 2px, 5px 0px 2px, 10px 0px 2px, 15px 0px 2px, 20px 0px 2px, 25px 0px 2px, 30px 0px 2px;

}

23% {

box-shadow: none;

}

25% {

box-shadow: -2px 0px 2px, 5px 0px 2px, 10px 0px 2px, 15px 0px 2px, 20px 0px 2px, 25px 0px 2px, 30px 0px 2px;

-webkit-transform: translateX(400px);

transform: translateX(400px);

}

48% {

box-shadow: none;

}

50% {

-webkit-transform: translateX(400px);

transform: translateX(400px);

}

75% {

-webkit-transform: translateX(400px);

transform: translateX(400px);

}

100% {

-webkit-transform: translateX(0px);

transform: translateX(0px);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值