|
|

楼主 |
发表于 2023-4-7 21:28
|
显示全部楼层
代码(请不要在本页测试,以免对一楼的演示产生干扰):
- <style>
- #papa {
- margin: 30px auto;
- width: 1024px;
- height: 640px;
- display: grid;
- place-items: center;
- position: relative;
- }
- .circle {
- position: absolute;
- width: 400px;
- height: 400px;
- border-radius: 50%;
- border: 2px solid var(--bdcolor);
- }
- @keyframes rotZ {
- 0% { transform: perspective(2000px) rotateX(var(--degX1)) rotateY(var(--degY1)) rotateZ(0deg); }
- 100%{ transform: perspective(2000px) rotateX(var(--degX2)) rotateY(var(--degY2)) rotateZ(360deg); }
- }
- </style>
- <div id="papa"></div>
- <script>
- let total = 50;
- Array.from({length: total}).forEach( (item,key) => {
- let sp = document.createElement('span');
- sp.className = 'circle';
- let aX = Math.random() * 360, aY = Math.random() * 360;
- sp.style.cssText += `
- --bdcolor: #${Math.random().toString(16).substr(-6)};
- --degX1: ${aX}deg;
- --degX2: ${aX + 360}deg;
- --degY1: ${aY}deg;
- --degY2: ${aY + 360}deg;
- transform: perspective(2000px) rotateY(${aY}deg) rotateX(${aX}deg);
- animation: rotZ 16s infinite linear;
- `;
- papa.appendChild(sp);
- });
- </script>
复制代码
|
|