|
|

楼主 |
发表于 2023-3-26 10:54
|
显示全部楼层
代码
- <style>
- #papa {
- margin: -80px 0 0 calc(50% - 593px);
- width: 1024px;
- height: 640px;
- background: url('https://638183.freep.cn/638183/t23/webp/iooi.webp') center/cover no-repeat;
- box-shadow: 3px 3px 20px #000;
- position: relative;
- z-index: 1;
- }
- #papa:hover #mplayer { transition: .7s; opacity: .9; }
- #vid { display: none; }
- #canv {
- position: absolute;
- display: block;
- opacity: 1;
- animation: opa 20s infinite alternate linear;
- }
- #mplayer {
- position: absolute;
- left: calc(50% - 15px);
- bottom: 5px;
- width: 30px;
- height: 30px;
- border: 2px solid blue;
- border-radius: 50%;
- opacity: 0;
- transition: .7s;
- display: grid;
- place-items: center;
- --disp1: 0; --disp2: 1;
- }
- #mplayer::before, #mplayer::after {
- position: absolute;
- content: '';
- border-style: solid;
- border-color: blue;
- cursor: pointer;
- transition: .4s;
- }
- #mplayer::before {
- width: 0;
- height: 0;
- left: 10px;
- border-width: 10px 12px;
- border-color: transparent transparent transparent blue;
- opacity: var(--disp1);
- }
- #mplayer::after {
- width: 2px;
- height: 20px;
- border-width: 0 4px 0 4px;
- opacity: var(--disp2);
- }
- @keyframes opa { to {opacity: 0;} }
- </style>
- <div id="papa">
- <canvas id="canv"></canvas>
- <div id="mplayer"></div>
- </div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1978621916" loop autoplay></audio>
- <video id="vid" src="https://img.tukuppt.com/video_show/2629112/00/02/33/5b57cbd737c25.mp4" loop autoplay></video>
- <script>
- let ctx = canv.getContext('2d');
- let ww = canv.width = papa.offsetWidth, hh = canv.height = papa.offsetHeight;
- let loop = () => {ctx.drawImage(vid, 0, 50, ww, hh, 0, 0, ww + 100, hh + 200);if(!vid.paused) {requestAnimationFrame(loop);return;}};
- let mState = () => aud.paused ? (mplayer.style.setProperty('--disp1','1'), mplayer.style.setProperty('--disp2','0'), vid.pause()) : (mplayer.style.setProperty('--disp1','0'), mplayer.style.setProperty('--disp2','1'), vid.play());
- vid.addEventListener('play', loop, false);
- aud.addEventListener('play', () => mState());
- aud.addEventListener('pause', () => mState());
- mplayer.addEventListener('click', () => aud.paused ? aud.play() : aud.pause());
- </script>
复制代码
|
|