- UID
- 909
- 主题
- 回帖
- 0
- 精华
- 积分
- 5266
- 金币
- 枚
- 草籽
- 颗
- 鲜花
- 朵
- 注册时间
- 2024-5-13
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2024-5-23 07:45
|
显示全部楼层
本帖最后由 凡哥 于 2024-5-23 07:49 编辑
帖子代码(测试代码请另开新帖)
- <style>
- #tiezi { position: relative; margin: 20px auto; width: 960px; height: 540px; }
- #tiezi:hover #player { filter: drop-shadow(0 0 32px yellow) opacity(1); }
- #vc { position: absolute; left: 0; top: 0; background: lightblue; border: 1px solid gray; box-shadow: 2px 2px 4px gray; }
- #vid { opacity: 0; }
- #player { position: absolute; left: 20px; top: 20px; cursor: pointer; filter: drop-shadow(0 0 16px lightblue) opacity(.5); animation: rot 8s linear infinite var(--state); transition: filter 2s; }
- @keyframes rot { to { transform: rotate(1turn); } }
- </style>
- <div id="tiezi">
- <video id="vid" src="https://img.tukuppt.com/video_show/3664703/00/02/06/5b50061d0cd10.mp4" loop muted></video>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=252879" autoplay loop></audio>
- <canvas id="vc" width="960" height="540"></canvas>
- <img id="player" src="https://638183.freep.cn/638183/t23/btn/plum.png" alt="" title="播放/暂停" />
- </div>
- <script>
- var ctx = vc.getContext('2d');
- var ww = vc.width, hh = vc.height;
- var raf = null;
- aud.onplaying = aud.onpause = () => {
- aud.paused ? vid.pause() : vid.play();
- tiezi.style.setProperty('--state', aud.paused ? 'paused' : 'running');
- vDraw();
- };
- aud.onseeked = () => cancelAnimationFrame(raf);
- var vDraw = () => {
- ctx.drawImage(vid, 0, 0, ww, hh, 0, -45, ww, hh + 45);
- aud.paused ? cancelAnimationFrame(raf) : raf = requestAnimationFrame(vDraw);
- };
- player.onclick = () => aud.paused ? aud.play() : aud.pause();
- </script>
复制代码 |
评分
-
4
查看全部评分
-
|