|
|

楼主 |
发表于 2023-3-28 19:38
|
显示全部楼层
代码
- <style>
- #mydiv {
- --state: running;
- position: relative;
- top: 200px;
- width: 100px;
- height: 120px;
- border-style: solid;
- border-color: transparent transparent hsla(120, 70%,50%, .25) transparent;
- border-width: 20px 120px 120px 120px;
- border-radius: 50%;
- box-shadow: 20px 20px 30px green inset, -20px -20px 30px green inset;
- cursor: pointer;
- transform: rotate(15deg);
- animation: fly 4s infinite alternate var(--state);
- }
- #mydiv::before, #mydiv::after {
- position: absolute;
- content: '';
- border-radius: 100%;
- background: darkgreen;
- top: -5px;
- animation: rot .5s infinite linear var(--state);
- }
- #mydiv::before {
- width: 100px;
- height: 10px;
- }
- #mydiv::after {
- width: 10px;
- height: 100px;
- left: calc(50% - 5px);
- top: -50px;
- }
- @keyframes fly {
- 10% { top: 180px; left: 5px; }
- 20% { top: 170px; left: 20px; }
- 50% { top: 180px; left: 10px; }
- }
- @keyframes rot {
- from { transform: rotateX(60deg) rotateZ(0); }
- to { transform: rotateX(60deg) rotateZ(360deg); }
- }
- </style>
- <div id="mydiv"></div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1903929629" loop autoplay></audio>
- <script>
- let mState = () => mydiv.style.setProperty('--state', aud.paused ? 'paused' : 'running');
- aud.addEventListener('play', mState, false);
- aud.addEventListener('pause', mState, false);
- mydiv.onclick = () => aud.paused ? aud.play() : aud.pause();
- </script>
复制代码
|
|