查看: 494|回复: 34

[特效] 未知频率

[复制链接]
一生安柠 青恬时光 幸福莓满 心想事橙 桃气满满 梅开颜笑 心若葡提 大吉大荔 樱果相依 喜上莓梢 一坛酒
发表于 2024-5-20 12:46 | 显示全部楼层 |阅读模式
本帖最后由 凡哥 于 2024-5-20 17:58 编辑

评分

7

查看全部评分

点评
回复

使用道具

一生安柠 青恬时光 幸福莓满 心想事橙 桃气满满 梅开颜笑 心若葡提 大吉大荔 樱果相依 喜上莓梢 一坛酒
 楼主| 发表于 2024-5-20 12:47 | 显示全部楼层
代码

  1. <style>
  2.         #papa { margin: 20px 0 20px calc(50% - 602px); width: 1024px; height: 640px; box-shadow: 3px 3px 6px gray; overflow: hidden; position: relative; z-index: 1; display: grid; place-items: center; }
  3.         #papa::before { position: absolute; content: 'okey'; width: 100%; height: 100%; background: url('https://638183.freep.cn/638183/t23/3/wvpl.jpeg') no-repeat center/cover; transition: 2s; }
  4.         #papa:hover::before { transform: scale(1.5);}
  5.         #canv, #player, #vid { position: absolute; }
  6.         #vid { bottom: 0; width: 100%; height: calc(100% + 80px); object-fit: cover; opacity: .9; mix-blend-mode: lighten; }
  7.         #player { cursor: pointer; animation: rot 8s linear infinite var(--state); }
  8.         @keyframes rot { to { transform: rotate(360deg); } }
  9. </style>

  10. <div id="papa">
  11.         <audio id="aud" src="https://music.163.com/song/media/outer/url?id=2141274880" autoplay loop></audio>
  12.         <video id="vid" src="https://img.tukuppt.com/video_show/2475824/00/01/99/5b4f03b48b1c3.mp4" autoplay loop muted></video>
  13.         <canvas id="canv" width="400" height="260"></canvas>
  14.         <img id="player" src="https://638183.freep.cn/638183/t23/btn/windmill.png" alt="" title="播放/暂停" />
  15. </div>

  16. <script>

  17. var ctx = canv.getContext('2d');
  18. ctx.globalAlpha = .6;
  19. var ww = canv.width, hh = canv.height;
  20. var total = 16, step = 0.2, balls = [], raf = null;

  21. class Ball {
  22.         constructor(data) {
  23.                 this.ctx = ctx;
  24.                 this.data = data;
  25.         };
  26.         draw() {
  27.                 ctx.fillStyle = this.data.color;
  28.                 ctx.beginPath();
  29.                 ctx.arc(this.data.x, this.data.y, this.data.r, 0, Math.PI * 2);
  30.                 ctx.fill();
  31.         };
  32. };

  33. var setData = (angle) => {
  34.         var cx = ww / 2, cy = hh / 2, r1 = ww / 2 - 25, r2 = hh / 2 - 25;
  35.         var x = cx + r1 * Math.cos(Math.PI / 180 * angle),
  36.                         y = cy + r2 * Math.sin(Math.PI / 180 * angle);
  37.                 var r = 5 + y / 25;
  38.         return { x: x, y: y, r: r };
  39. };

  40. var mkBalls = () => {
  41.         for(var i = 0; i < total; i ++) {
  42.                 var a = i * 360 / total;
  43.                 var d = Object.assign(setData(a), {angle: a, color: `#${Math.random().toString(16).substring(2,8)}`});
  44.                 var ball = new Ball(d);
  45.                 ball.draw();
  46.                 balls.push(ball);
  47.         }
  48. };

  49. var render = () => {
  50.         ctx.clearRect(0, 0, ww, hh);
  51.         balls.forEach(b => {
  52.                 b.data.angle = (b.data.angle + step) % 360;
  53.                 b.data = Object.assign(b.data, setData(b.data.angle));
  54.                 b.draw();
  55.         });
  56.         raf = requestAnimationFrame(render);
  57. };

  58. var mState = () => {
  59.         papa.style.setProperty('--state', aud.paused ? 'paused' : 'running');
  60.         aud.paused ? vid.pause() : vid.play();
  61.         aud.paused ? cancelAnimationFrame(raf) : raf = requestAnimationFrame(render);
  62. };

  63. aud.onplaying = aud.onpause = () => mState();

  64. player.onclick = () => aud.paused ? aud.play() : aud.pause();

  65. mkBalls();

  66. </script>
复制代码


评分

6

查看全部评分

点评
回复

使用道具

万水千山总是情
山外有山 版主勋章 海洋之心 蝴蝶精灵 花漫千山 江湖之上 江湖靓女 中秋月圆 欢度国庆 雪花精灵 开卷有益 桃花朵朵 山高为峰 一生安柠 青恬时光 幸福莓满 心想事橙 大吉大荔 樱果相依 望月兔
发表于 2024-5-20 13:32 | 显示全部楼层
沙发
点评
回复

使用道具

笑傲江湖
一叶知秋 版主勋章 山高为峰 山外有山 45 樱果相依 24 46 47 48 一坛酒
发表于 2024-5-20 15:42 | 显示全部楼层
凡哥好
很精彩的制作
画面震撼
鼠标效果很棒
感谢代码分享。。。
点评
回复

使用道具

一生安柠 青恬时光 幸福莓满 心想事橙 桃气满满 梅开颜笑 心若葡提 大吉大荔 樱果相依 喜上莓梢 一坛酒
 楼主| 发表于 2024-5-20 18:07 | 显示全部楼层
令狐冲 发表于 2024-5-20 15:42
凡哥好
很精彩的制作
画面震撼

感谢令兄支持
点评
回复

使用道具

一生安柠 青恬时光 幸福莓满 心想事橙 桃气满满 梅开颜笑 心若葡提 大吉大荔 樱果相依 喜上莓梢 一坛酒
 楼主| 发表于 2024-5-20 18:08 | 显示全部楼层

感谢穆版支持
点评
回复

使用道具

一叶知秋 版主勋章 山高为峰 山外有山 樱果相依 24 46 47 48 闲花落
发表于 2024-5-20 20:40 | 显示全部楼层
这个粒子旋转通过计算,实面近大远小的大小变换,有很强的空间感~~
点评
回复

使用道具

一叶知秋 版主勋章 山高为峰 山外有山 樱果相依 24 46 47 48 闲花落
发表于 2024-5-20 20:42 | 显示全部楼层
鼠标移到背景图片上,图片可进行1.5倍的变大效果,且始终居中,
看上去是风车的固定轴似的,这个设计十分巧妙
点评
回复

使用道具

一叶知秋 版主勋章 山高为峰 山外有山 樱果相依 24 46 47 48 闲花落
发表于 2024-5-20 20:43 | 显示全部楼层
视频的色彩漂亮,有梦幻之感,整贴效果赏心悦目,十分好看。。
点评
回复

使用道具

一生安柠 青恬时光 幸福莓满 心想事橙 桃气满满 梅开颜笑 心若葡提 大吉大荔 樱果相依 喜上莓梢 一坛酒
 楼主| 发表于 2024-5-20 21:07 | 显示全部楼层
花简静 发表于 2024-5-20 20:43
视频的色彩漂亮,有梦幻之感,整贴效果赏心悦目,十分好看。。

果酱果酱
点评
回复

使用道具

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|千山论坛

GMT+8, 2024-9-28 06:24

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表