|
|

楼主 |
发表于 2023-3-24 07:11
|
显示全部楼层
帖子代码
- <style>
- #papa {
- margin: 100px 0 0 calc(50% - 593px);
- width: 1024px;
- height: 640px;
- background: gray url('https://638183.freep.cn/638183/t23/webp/xsmf.webp') center/cover no-repeat;
- box-shadow: 3px 3px 20px #000;
- position: relative;
- z-index: 1;
- --state: paused;
- }
- #mplayer {
- width: 80px;
- height: 160px;
- left: 10px;
- bottom: 10px;
- background: black;
- border-radius: 8px;
- box-shadow: 6px 4px 12px snow;
- transition: .6s;
- position: absolute;
- pointer-events: none;
- }
- #mplayer::before, #mplayer::after {
- position: absolute;
- content: '';
- }
- #mplayer::before {
- width: 30px;
- height: 30px;
- left: calc(50% - 15px);
- bottom: 15px;
- border-radius: 50%;
- background: #333;
- pointer-events: auto;
- cursor: pointer;
- border: 2px solid snow;
- box-shadow: 0 0 10px blue;
- animation: flash .3s infinite alternate var(--state);
- }
- #mplayer::after {
- content:attr(data-tt);
- top: 6px; right: 6px; bottom: 60px; left: 6px;
- background: #333;
- color: lightblue;
- font-size: 14px;
- text-align: center;
- padding: 4px;
- white-space:pre;
- }
- #mplayer:active { transform: rotate(5deg); }
- #vid { display: none; }
- #canv {
- position: absolute;
- display: block;
- right: 10px;
- top: 10px;
- border-radius: 50%;
- opacity: .35;
- }
- @keyframes flash {
- to { box-shadow: 0 0 30px white; }
- }
- </style>
- <div id="papa">
- <canvas id="canv"></canvas>
- <div id="mplayer" data-tt="HCPlayer
- 00:00
- 00:00"></div>
- </div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=30148242" loop></audio>
- <video id="vid" src="https://img.tukuppt.com/video_show/2475824/00/02/06/5b50065e45b04.mp4" loop muted></video>
- <script>
- let ctx = canv.getContext('2d');
- let ww = canv.width = 400, hh = canv.height = 400;
- let loop = () => {ctx.drawImage(vid, 0, 0, ww, hh);if(!vid.paused) {requestAnimationFrame(loop);return;}}
- let toMin = (val) => {if (!val) return '00:00';val = Math.floor(val);let min = parseInt(val / 60),sec = parseFloat(val % 60);if (min < 10) min = '0' + min;if (sec < 10) sec = '0' + sec;return min + ':' + sec;};
- let mState = () => aud.paused ? (papa.style.setProperty('--state', 'paused'),vid.pause()) : (papa.style.setProperty('--state', 'running'),vid.play());
- vid.playbackRate = 0.5;
- vid.addEventListener('play', loop, false);
- aud.addEventListener('play', () => mState());
- aud.addEventListener('pause', () => mState());
- aud.addEventListener('timeupdate', () => mplayer.dataset.tt = '萧瑟鸣风\n\n' + toMin(aud.duration) + '\n' + toMin(aud.currentTime));
- mplayer.addEventListener('click', () => aud.paused ? aud.play() : aud.pause());
- </script>
复制代码
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|