花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 315|回复: 134

原生JS+CSS+HTML做出particles.js的默认效果

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2023-7-4 12:33 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 6威望 +212 金钱 +425 经验 +212 收起 理由
    红影 + 50 + 100 + 50 赞一个!
    醉美水芙蓉 + 30 + 60 + 30 赞一个!
    樵歌 + 50 + 100 + 50 赞一个!
    路人甲 + 2 + 5 + 2 赞一个!
    南无月 + 30 + 60 + 30 赞一个!
    小辣椒 + 50 + 100 + 50 赞一个!

    查看全部评分

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 12:35 | 显示全部楼层
    代码
    1. <style>
    2. #mama {
    3.         width: 1000px;
    4.         height: 600px;
    5.         background: linear-gradient(to top right,darkgreen,antiquewhite);
    6.         opacity: .95;
    7.         overflow: hidden;
    8.         position: relative;
    9.         margin: 0 0 0 calc(50% - 581px);
    10. }
    11. li-zi {
    12.         display: block;
    13.         position: absolute;
    14.         width: 10px;
    15.         height: 10px;
    16.         background: snow;
    17.         border-radius: 50%;
    18. }
    19. </style>

    20. <div id="mama"></div>

    21. <script>
    22. let total = 50, canMove = true, lzAr = [];
    23. let mlAr = Array.from({length: total}, (v) => Math.random() * 1.5 - .8),
    24.         mtAr = Array.from({length: total}, (v) => Math.random() * 1.2 - .6);

    25.         Array.from({length: total}).forEach((item,key) => {
    26.                 item = document.createElement('li-zi');
    27.                 let ww = 4 + Math.round(Math.random() * 10),
    28.                         lPos = Math.round(Math.random() * (mama.offsetWidth - ww)),
    29.                         tPos = Math.round(Math.random() * (mama.offsetHeight - ww));
    30.                 item.style.cssText += `
    31.                         left: ${lPos}px;
    32.                         top: ${tPos}px;
    33.                         width: ${ww}px;
    34.                         height: ${ww}px;
    35.                         background: #${Math.random().toString(16).substr(-6)};
    36.                 `;
    37.                 let ar = [item,lPos,tPos,ww];
    38.                 lzAr.push(ar);
    39.                 mama.appendChild(item);
    40.         });

    41.         let move = () => {
    42.                 if(canMove) {
    43.                         lzAr.forEach((item,key) => {
    44.                                 item[1] += mlAr[key];
    45.                                 item[2] += mtAr[key];
    46.                                 if(item[1] > mama.offsetWidth) item[1] = 0;
    47.                                 if(item[1] < -item[3] / 2) item[1] = mama.offsetWidth;
    48.                                 if(item[2] > mama.offsetHeight) item[2] = 0;
    49.                                 if(item[2] < -item[3] / 2) item[2] = mama.offsetHeight;
    50.                                 item[0].style.left = item[1] + 'px';
    51.                                 item[0].style.top = item[2] + 'px';
    52.                         });
    53.                 }
    54.                 requestAnimationFrame(move);
    55.         };

    56.         move();

    57. </script>
    复制代码


    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    小辣椒 + 50 + 100 + 50 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 12:38 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-7-4 13:20 编辑

    粒子大小范围依赖第 30 行,

    let ww = 4 + Math.round(Math.random() * 10),

    数字 4 是最小尺寸,数字 10 是加的最大尺寸,即大小区间为 4 - 14,修改这两个数字可改变粒子的大小范围。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 12:40 | 显示全部楼层
    粒子的颜色在第 38 行,

    background: #${Math.random().toString(16).substr(-6)};

    这是16进制随机颜色,可以修改为别的。例如,希望粒子都是白色的:

    background: #fff;
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 12:42 | 显示全部楼层
    粒子的数量在第 24 行,

    let total = 50, canMove = true, lzAr = [];

    50 个粒子,把 50 改为多少就是多少,不要太小气也不要太贪心
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 12:46 | 显示全部楼层
    粒子的运行方向与速度是随机的,由 25 和 26 行分别控制 xy 方向,

    let mlAr = Array.from({length: total}, (v) => Math.random() * 1.5 - .8),
            mtAr = Array.from({length: total}, (v) => Math.random() * 1.2 - .6);

    试着修改区间范围,应该会发现,既可以控制方向、也可以控制速度。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 12:50 | 显示全部楼层
    本帖,是利用二维数组来存储数据,数据有些是动态变化的,然后由这些变化去驱动粒子的 left 和 top 值,达到移动的目的。

    数组处理数字没有问题,问题是程序代码不容易看懂,所以,我会考虑使用 JS 的 class(类)来重写一个相同功能的脚本。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-25 21:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    1421

    主题

    6万

    回帖

    12万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀青草情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀男儿情怀鹰傲苍穹心香一瓣音画大师天籁妙音风雨同行我心永远喜乐安康中秋征文指尖上的流年花潮管理

    发表于 2023-7-4 14:07 | 显示全部楼层
    黑黑说的这么仔细,这年低评优秀教授一定得你
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-15 14:24
  • 签到天数: 331 天

    [LV.8]以坛为家I

    64

    主题

    2546

    回帖

    8742

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生蝴蝶情怀心香一瓣金剪刀音画大师

    发表于 2023-7-4 15:38 | 显示全部楼层
    问好老师,欣赏精彩佳作,点赞!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-6-7 18:18
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    52

    主题

    1472

    回帖

    5642

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪心曲飞扬宁静致远

    发表于 2023-7-4 16:05 | 显示全部楼层
    给黑黑老师点赞问好。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2023-7-4 16:13 | 显示全部楼层
    马黑黑 发表于 2023-7-4 12:42
    粒子的数量在第 24 行,

    let total = 50, canMove = true, lzAr = [];

    要我试估计就先来200个看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-31 20:54
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    0

    主题

    49

    回帖

    175

    积分

    注册会员

    Rank: 20Rank: 20

    发表于 2023-7-4 16:20 | 显示全部楼层
    满天的彩色泡泡飞
    路过
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-14 08:25
  • 签到天数: 600 天

    [LV.9]以坛为家II

    379

    主题

    1万

    回帖

    3万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师花潮贵宾

    发表于 2023-7-4 17:15 | 显示全部楼层
    问好老师,谢谢无私分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 08:26
  • 签到天数: 646 天

    [LV.9]以坛为家II

    1374

    主题

    7万

    回帖

    13万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥多彩人生海样胸怀春风拂面青草情怀心曲飞扬七彩绚丽活泼开朗男儿情怀鹰傲苍穹共看流星风雨同行我心永远天长地久幸福快乐春意盎然喜乐安康心想事成周年庆指尖上的流年舞会之星情人节花潮管理

    发表于 2023-7-4 18:01 | 显示全部楼层
    好漂亮 的粒子,瞅瞅你哪位高足先应用
    回复 支持 反对

    使用道具 举报

    醉美水芙蓉 该用户已被删除
    发表于 2023-7-4 20:16 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 22:23 | 显示全部楼层
    醉美水芙蓉 发表于 2023-7-4 20:16
    欣赏学习黑黑老师的教程!

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 22:23 | 显示全部楼层
    樵歌 发表于 2023-7-4 18:01
    好漂亮 的粒子,瞅瞅你哪位高足先应用

    我这里是半成品,控制粒子功能没给出,看看谁会
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 22:24 | 显示全部楼层
    梦江南 发表于 2023-7-4 17:15
    问好老师,谢谢无私分享!

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 22:24 | 显示全部楼层
    路人甲 发表于 2023-7-4 16:20
    满天的彩色泡泡飞

    感谢光临指导
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-4 22:24 | 显示全部楼层
    南无月 发表于 2023-7-4 16:13
    要我试估计就先来200个看看

    少了,一般250是没问题的
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-15 01:23 , Processed in 0.085226 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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