花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 172|回复: 86

一个随机在边边角角运动的实例

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-16 08:52
  • 签到天数: 1671 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2022-7-8 23:03 | 显示全部楼层 |阅读模式

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

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

    x

    评分

    参与人数 2威望 +80 金钱 +160 经验 +80 收起 理由
    加林森 + 30 + 60 + 30 很给力!
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-8 23:03 | 显示全部楼层
    代码:
    1. <style>
    2. #papa {
    3.         margin: 50px auto 0;
    4.         width: 720px;
    5.         height: 600px;
    6.         box-shadow: 4px 4px 24px #000;
    7.         position: relative;
    8. }
    9. #piece {
    10.         position: absolute;
    11.         width: 90px;
    12.         height: 66px;
    13.         transition: all 4s;
    14. }

    15. </style>

    16. <div id="papa">
    17.         <img  id="piece" alt="" src="/data/attachment/forum/202207/08/225900jzc7ctq9wa99r83a.gif" />
    18. </div>

    19. <script>
    20. let aniFlag = 0; //动画标识
    21. let num = (min, max) => Math.floor(Math.random() * (max-min+1)) + min;

    22. setTimeout(gogo,100); //初次运行动画

    23. function gogo() { //动画函数
    24.         let idx1 =num(0,1), idx2 = num(0,1);
    25.         let w1 = papa.clientWidth, w2 = piece.clientWidth, h1 = papa.clientHeight, h2 = piece.clientHeight;
    26.         piece.style.left = (w1 - w2) * idx1 + 'px';
    27.         piece.style.top = (h1 - h2) * idx2 + 'px';
    28.         setTimeout(gogo,6000);
    29. }
    30. </script>
    复制代码


    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-8 23:03 | 显示全部楼层
    本帖最后由 马黑黑 于 2022-7-8 23:15 编辑

    预设的“飞行”路线是酱紫:
    每一次都从四个角出发,有时候不出发,因为是随机的,上一个随机数可能与下一次随机数重合,有时候会重合几次。路线有边线,也有对角线。

    驱动的实现,利用 left 与 top 值的变更促成:上一个 left 与 top,在一个定时器周期完成后转换为下一个 left 与 top,借助运动对象元素的 transition 设定,达成规定时间内沿两点间的位移效果。transition 的时间少于定时器周期时长,这是逻辑关系问题:动作做完之后才能发起下一个位移。

    下楼讲讲JS代码。
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-8 23:07 | 显示全部楼层
    本帖最后由 马黑黑 于 2022-7-8 23:32 编辑

    下面重点解释一下自定义的 gogo() 函数

    • function gogo() { //动画函数
    •         let idx1 =num(0,1), idx2 = num(0,1);
    •         let w1 = papa.clientWidth, w2 = piece.clientWidth, h1 = papa.clientHeight, h2 = piece.clientHeight;
    •         piece.style.left = (w1 - w2) * idx1 + 'px';
    •         piece.style.top = (h1 - h2) * idx2 + 'px';
    •         setTimeout(gogo,6000);
    • }

    函数不长。

    首先,32行,声明并赋值两个变量,idx1和idx2,它们都是通过前面声明的 num() 函数获得 0 到 1 的整数,不是0就是1。这两个变量的作用是随机设定四个角的依据。着四个角,左上、右上、右下、左下可以记为 {0,0}、{0,1}、{1,1}、{0,1},其中,0表示left或top不变,是0px,1表示left或top有变,是父元素宽或高减去子元素宽或高之后的值。

    接着,33行,用w1、w2分别获取父元素、子元素的宽度,用h1、h2分别获取父元素、子元素的高度;

    34行,计算子元素(id="piece")的左边值(left),(父宽-子宽)* idx1 的式子能理解吧?idx1是随机获得是要么是0要么是1的数,是0时,left值就是0px了,是1时,left值则是 父宽-子宽 个像素的值。

    35行,计算子元素的上边值(top),原理和34行同。

    35行,setTimeout定时器调用本函数。setTimeout定时器在函数内部运行函数,叫递归调用,会循环不已,前提是要有的函数外的首次调用(这在前面已经有了)。
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-8 23:37 | 显示全部楼层
    这个例子,在使用UFO图片之前,我还加入了一个 animation 动画,它运动对象要么向左转动,要么向右旋转,这个UFO已经有这个动作(虽然性质不同),就取消掉了。

    结合 @keyframes 令对象运动,可以使得运动的样式更为多样化。
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-8 23:38 | 显示全部楼层
    运动方向是随机的,能猜出它下一个运动方向的,去摸奖肯定能中
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-8 23:59 | 显示全部楼层
    如果想设置更复杂的路线,比如可以在任一点停留,思路要改一改:

    在 gogo 函数里用一个数组直接装载各点的{xy}像素值,像下面这样,

        let psAr = [[0,0],[40,300],[560,20], ....];

    预存储的数组元素越多,运动的路线就越丰富。

    然后,用随机数抓取数组中的xy点:

    let idx1 = psAr[num(0,psAr.length - 1)][0],  idx2 = psAr[num(0,psAr.length - 1)][1];

    再将idx1和idx2赋值给子元素的 left 和 top 值:

    piece.style.left = idx1 + 'px';
    piece.style.top = idx2 + 'px';
    回复 支持 反对

    使用道具 举报

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

    [LV.6]常住居民II

    11

    主题

    209

    回帖

    2097

    积分

    金牌会员

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

    发表于 2022-7-9 07:07 | 显示全部楼层
    JS里,不见声明待操作元素的操作句柄,例如要对 <div id="piece"></div> 进行相关操作,必先取得其代理变量:

    var piece = document.getElementById('piece');

    然后才可通过 piece 进行相关的操作。本例直接操作 piece ,事先并未声明,是什么道理?

    原来:在 HTML5 里,拥有唯一标识的元素,该标识直接指向该元素,JS中可以直接使用该标识对之进行识别与操作。可能部分浏览器不支持,但不支持的都是已经过时、被废弃的浏览器,如IE和基于IE内核的第三方封装浏览器。我们无需去兼容这一类浏览器,可以按照HTML5的标准去编写代码。
    回复 支持 反对

    使用道具 举报

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2022-7-9 08:40 | 显示全部楼层
    看到一个飞碟在探索边边角角,这是外星人要入侵的节奏么
     
    回复 支持 反对

    使用道具 举报

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2022-7-9 08:41 | 显示全部楼层
    马黑黑 发表于 2022-7-8 23:59
    如果想设置更复杂的路线,比如可以在任一点停留,思路要改一改:

    在 gogo 函数里用一个数组直接装载各点 ...

    这个是随机抓取,如果设计个线路,依次抓取是怎样的代码?
     
    回复 支持 反对

    使用道具 举报

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2022-7-9 08:42 | 显示全部楼层
    红影 发表于 2022-7-9 08:41
    这个是随机抓取,如果设计个线路,依次抓取是怎样的代码?

    随机的太难控,喜欢它按照约定的线路行进
     
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-9 08:53 | 显示全部楼层
    本帖最后由 马黑黑 于 2022-7-9 08:57 编辑
    红影 发表于 2022-7-9 08:41
    这个是随机抓取,如果设计个线路,依次抓取是怎样的代码?

    从头到尾依次获得数组中的位置,需要设置一个自增变量,放在JS的比较开始的位置,比如设定为 myIdx:

    let myIdx = 0; //开始时是0

    然后在自定义函数内,通过 myIdx 得到数组的第 myIdx 元素并将值分别赋予元素的left和top:

    piece.style.left = psAr[myIdx][0];
    piece.style.top = psAr[myIdx][1];

    接着,在函数内处理 myIdx 增量问题:

    myIdx ++;
    if(myIdx > psAr.length - 1) myIdx = 0;

    上面第一句,是 myIdx 使用完一次就增量,增量会突破数组元素总数,所以要处理一下,这就是第二句:如果 myIdx 大于等于数组元素总数减去1,则 myIdx 回到0,从头开始。读取数组下标从 0 开始,所以式子总是像上面那样去处置。

    评分

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

    查看全部评分

    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-9 08:53 | 显示全部楼层
    红影 发表于 2022-7-9 08:40
    看到一个飞碟在探索边边角角,这是外星人要入侵的节奏么

    是要治理沙漠
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-9 08:56 | 显示全部楼层
    红影 发表于 2022-7-9 08:42
    随机的太难控,喜欢它按照约定的线路行进

    随机需要规定范围便可。既定路线,则需要编写好路线图(用数组装载xy坐标),这也是繁琐的工作。设计一个作品,设计的东西的确很多、很细。
    回复 支持 反对

    使用道具 举报

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2022-7-9 09:00 | 显示全部楼层
    山人 发表于 2022-7-9 07:07
    JS里,不见声明待操作元素的操作句柄,例如要对  进行相关操作,必先取得其代理变量:

    var piece = docum ...

    拥有唯一标识的元素,可以不用先取得其代理变量。嗯嗯,记下了
     
    回复 支持 反对

    使用道具 举报

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2022-7-9 09:01 | 显示全部楼层
    马黑黑 发表于 2022-7-8 23:38
    运动方向是随机的,能猜出它下一个运动方向的,去摸奖肯定能中

    能猜出它下一个运动方向的,肯定第一个被外星人抓走
     
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-9 09:10 | 显示全部楼层
    红影 发表于 2022-7-9 09:01
    能猜出它下一个运动方向的,肯定第一个被外星人抓走

    因为脑电波对上号了?
    回复 支持 反对

    使用道具 举报

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2022-7-9 09:18 | 显示全部楼层
    马黑黑 发表于 2022-7-8 23:07
    下面重点解释一下自定义的 gogo() 函数

    原来随机调用是let idx1 =num(0,1), idx2 = num(0,1);

    这个let num = (min, max) => Math.floor(Math.random() * (max-min+1)) + min;没看懂,能详细解释一下么?

     
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2022-7-9 09:41 | 显示全部楼层
    红影 发表于 2022-7-9 09:18
    原来随机调用是let idx1 =num(0,1), idx2 = num(0,1);

    这个let num = (min, max) => Math.floor(Math. ...

    这是箭头函数,简化的写法。两个参数,min, max,分别表示一大一小的两个数,调用时是这样:

    num(1,100)

    这将返回从 1(包含1)到 100(包含100)的一个随机整数。

    函数的内容是一些运算机制,几个数学方法、式子套用,其中:

    Math.random() * (max - min + 1)将得到一个随机浮点数,Math.random() 得到的是 从 0 到 1(不包含1)的浮点数,乘以 max-min+1 自己思考一下。浮点数之前加入  Math.floor 表示向下取整。因为这一节获得的数字有可能是0,所以后面加上 min,确保 边界最小数能有机会获取。

    评分

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

    查看全部评分

    回复 支持 反对

    使用道具 举报

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

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2022-7-9 15:30 | 显示全部楼层
    马黑黑 发表于 2022-7-9 08:53
    从头到尾依次获得数组中的位置,需要设置一个自增变量,放在JS的比较开始的位置,比如设定为 myIdx:

    l ...

    谢谢黑黑,有个这个,我貌似也应该做个帖子,试验一下按规定线路走
     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-12-17 01:07 , Processed in 0.080625 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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