|
|

楼主 |
发表于 2023-6-14 13:06
|
显示全部楼层
帖子代码
- <style>
- #mydiv {
- width: 1024px;
- height: 640px;
- background: url('https://638183.freep.cn/638183/t23/2/dcyk.jpg') no-repeat center/cover;
- box-shadow: 0 0 6px 0 #000;
- overflow: hidden;
- position: relative;
- margin: 30px auto;
- --opa1: 0; --opa2: 1; --bgcolor: rgba(255,255,255,.6); --state: paused;
- }
- #btn {
- display: block;
- width: 30px;
- height: 30px;
- transform: translate(497px,590px);
- border-radius: 50%;
- border: 2px solid var(--bgcolor);
- cursor: pointer;
- position: absolute;
- }
- #btn:hover { --bgcolor: rgba(255,255,255,.9); }
- #btn::before, #btn::after {
- position: absolute;
- content: '';
- width: 100%;
- height: 100%;
- background: var(--bgcolor);
- transition: .25s;
- }
- #btn::before {
- clip-path: polygon(35% 25%, 35% 75%, 80% 50%);
- opacity: var(--opa1);
- }
- #btn::after {
- clip-path: polygon(30% 30%,30% 70%,45% 70%,45% 30%, 30% 30%,55% 30%,55% 70%,70% 70%,70% 30%);
- opacity: var(--opa2);
- }
- .plane {
- display: block;
- width: 80px;
- height: 60px;
- left: 20px;
- top: 30px;
- background: linear-gradient(lightgreen,green,lightgreen);
- opacity: .8;
- clip-path: polygon(0 0,20% 50%,0 100%,100% 50%);
- offset-path: path('M20 30 h1004 30');
- offset-distance: 0%;
- position: absolute;
- animation: fly 40s var(--delay) infinite linear var(--state);
- --delay: 0s;
- }
- .plane:nth-of-type(2), .plane:nth-of-type(4) { --delay: -10s; }
- .plane:nth-of-type(3), .plane:nth-of-type(4) {
- transform: translateY(510px);
- opacity: .6;
- }
- @keyframes fly { to { offset-distance: 100%; } }
- </style>
- <div id="mydiv">
- <span id="btn"></span>
- <span class="plane"></span>
- <span class="plane"></span>
- <span class="plane"></span>
- <span class="plane"></span>
- </div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1364646699" autoplay="autoplay" loop="loop"></audio>
- <script>
- let setProp = (ele,vals) => vals.forEach((item,key) => ele.style.setProperty(item[0], item[1]));
- let mState = () => { let ar = aud.paused ? [['--opa1','1'],['--opa2','0'],['--state','paused']] : [['--opa1','0'],['--opa2','1'],['--state','running']]; setProp(mydiv,ar); };
- aud.addEventListener('play', mState, false);
- aud.addEventListener('pause', mState, false);
- btn.onclick = () => aud.paused ? aud.play() : aud.pause();
- </script>
复制代码
|
|