花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 59|回复: 12

黑师JS粒子类的演示

[复制链接]
  • TA的每日心情
    开心
    2025-9-29 08:51
  • 签到天数: 90 天

    [LV.6]常住居民II

    11

    主题

    209

    回帖

    2097

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    发表于 2023-7-7 19:52 | 显示全部楼层 |阅读模式

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

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

    x

    根据黑师的新教程,制作一个玩玩。点击下面的方框,见证奇迹:

    评分

    参与人数 5威望 +210 金钱 +420 经验 +210 收起 理由
    小辣椒 + 50 + 100 + 50 很给力!
    樵歌 + 50 + 100 + 50 赞一个!
    醉美水芙蓉 + 30 + 60 + 30 神马都是浮云
    红影 + 50 + 100 + 50 赞一个!
    南无月 + 30 + 60 + 30 赞一个!

    查看全部评分

  • TA的每日心情
    开心
    2025-9-29 08:51
  • 签到天数: 90 天

    [LV.6]常住居民II

    11

    主题

    209

    回帖

    2097

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

     楼主| 发表于 2023-7-7 19:54 | 显示全部楼层
    代码:
    1. <style>
    2. #mama {
    3.         margin: 20px auto;
    4.         width: 760px;
    5.         height: 400px;
    6.         border: 1px solid gray;
    7.         cursor: pointer;
    8.         position: relative;
    9. }
    10. li-zi {
    11.         position: absolute;
    12.         border-radius: 50%;
    13. }
    14. </style>

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

    16. <script>

    17. class Lizi {
    18.         constructor(pa,size = 20) {
    19.                 this.pa = pa;
    20.                 this.size = size;
    21.                 this.bg = 'purple';
    22.                 this.left = 10;
    23.                 this.top = 10;
    24.                 this.xstep = 1;
    25.                 this.ystep = 1;
    26.                 this.ele = document.createElement('li-zi');
    27.         }

    28.         creating() {  
    29.                 this.ele.style.cssText = `
    30.                         width: ${this.size}px;
    31.                         height: ${this.size}px;
    32.                         left: ${this.left}px;
    33.                         top: ${this.top}px;
    34.                         background: ${this.bg};
    35.                 `;
    36.                 this.pa.appendChild(this.ele);
    37.                 this.moving();
    38.         }

    39.         moving() {
    40.                 this.left += this.xstep;
    41.                 this.top += this.ystep;
    42.                 if(this.left <= 0 || this.left >= this.pa.offsetWidth - this.size) this.xstep = -this.xstep;
    43.                 if(this.top <= 0 || this.top >= this.pa.offsetHeight - this.size) this.ystep = -this.ystep;
    44.                 this.ele.style.left = this.left + 'px';
    45.                 this.ele.style.top = this.top + 'px';
    46.                 requestAnimationFrame(this.moving.bind(this));
    47.         }
    48. }

    49. let stepAr = [0.5,-0.5,1,-1,0.8,-0.8,1.2,-1.2,0.3,-0.3,1.5,-1.5]; //步幅数组

    50. mama.onclick = (e) => {
    51.         let xIdx = Math.floor(Math.random() * stepAr.length),
    52.                 yIdx = Math.floor(Math.random() * stepAr.length);
    53.         let lz = new Lizi(mama);
    54.         lz.size = 4 + Math.ceil(Math.random() * 5);
    55.         let x = e.offsetX < 1 ? 1 : e.offsetX, y = e.offsetY < 1 ? 1 : e.offsetY;
    56.         if(x >= mama.offsetWidth - lz.size - 1) x = mama.offsetWidth - lz.size - 1;
    57.         if(y >= mama.offsetHeight - lz.size - 1) y = mama.offsetHeight - lz.size - 1;
    58.         lz.left = x;
    59.         lz.top = y;
    60.         lz.xstep = stepAr[xIdx];
    61.         lz.ystep = stepAr[yIdx];
    62.         lz.bg = '#' + Math.random().toString(16).substr(-6);
    63.         lz.creating();
    64. }

    65. </script>
    复制代码





    评分

    参与人数 1威望 +30 金钱 +60 经验 +30 收起 理由
    南无月 + 30 + 60 + 30 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-9-29 08:51
  • 签到天数: 90 天

    [LV.6]常住居民II

    11

    主题

    209

    回帖

    2097

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

     楼主| 发表于 2023-7-7 19:58 | 显示全部楼层
    当点击的正好是一个粒子,则新生的粒子在方框的左上角出现。没有做这个处理机制,但可以处理。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-9-29 08:51
  • 签到天数: 90 天

    [LV.6]常住居民II

    11

    主题

    209

    回帖

    2097

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

     楼主| 发表于 2023-7-7 19:59 | 显示全部楼层
    能产生多少个粒子没有做限制,理论上可以无限生成,不过需要考虑浏览器的承载能力以及计算机的内存
    回复 支持 反对

    使用道具 举报

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

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

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

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

    发表于 2023-7-7 20:47 | 显示全部楼层
    各种不同颜色不同大小不同位置的粒子 就这么被点出来了。。。
    回复 支持 反对

    使用道具 举报

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

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

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

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

    发表于 2023-7-7 20:48 | 显示全部楼层
    这是一块神奇的画布
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-7-7 20:53 | 显示全部楼层
    随手点击就有粒子出来,这个太棒了。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-7-7 20:54 | 显示全部楼层
    点点点,点出满屏缤纷
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-7-7 20:55 | 显示全部楼层
    这些粒子还有随机大小和色彩呢,真棒
     
    回复 支持 反对

    使用道具 举报

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

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-16 07:14
  • 签到天数: 648 天

    [LV.9]以坛为家II

    1376

    主题

    7万

    回帖

    13万

    积分

    管理员

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

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

    发表于 2023-7-7 21:21 | 显示全部楼层
    好一通乱点,这些粒子各自在不同的层面空间远行,我观察了一会,没有发现碰撞的。牛。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-16 08:52
  • 签到天数: 1671 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2023-7-7 21:41 | 显示全部楼层
    樵歌 发表于 2023-7-7 21:21
    好一通乱点,这些粒子各自在不同的层面空间远行,我观察了一会,没有发现碰撞的。牛。。。。

    在水平面上,实际上是有碰撞的
    回复 支持 反对

    使用道具 举报

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

    [LV.1]初来乍到

    1421

    主题

    6万

    回帖

    12万

    积分

    管理员

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

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

    发表于 2023-7-7 22:56 | 显示全部楼层
    哇塞~一点一个粒子出来,还是彩色的
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-12-16 19:27 , Processed in 0.072160 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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